1
A
回答
3
你可以重寫你的程序接受TABLE
參數,填充100個值,處理表而不是100個標量嗎?
1
要直接回答您的問題,您可以打開100個單獨的連接並同時執行100個單獨的查詢。
但如前所述,我不認爲這是你的解決方案。
當你有100個值的表,看來你有幾個選項...
- 更改StoredProcedure的一個視圖,並加入上風景。
- 將StoredProcedure更改爲表值函數,並使用CROSS APPLY。
(內聯函數會比多語句函數執行好了很多。)
這兩個由事實limitted,無論是景色還是一個函數可以有任何的副作用...沒有寫對錶,等等,等等
如果你不能重構代碼使用視圖或函數,你仍然需要一個存儲過程來封裝代碼。
在這種情況下,您可以:
- 將值表格作爲表值參數傳遞。
- 或直接從表中讀取存儲過程。
根據您的需要,您甚至可能希望創建一個專門供此SP讀取的表格。這引入了一些額外的問題,雖然...
- 併發:如何保持我的數據與別人分開?擁有一個字段來保存唯一的標識符,例如會話的@@ SPID。
- 清理:您不希望進程整天插入數據,但不會刪除它。
有一件事我會強烈建議您避免使用循環/光標。如果你能找到一個基於集合的方法,用它:)
編輯
你剛纔提到左邊的評價是你有百萬條記錄進行處理。
這使得更加最好使用基於集合的方法。但是,您可能會發現這會創建非常大的事務(如果您正在執行大量的INSERT,UPDATE等)。在這種情況下,仍然發現基於集合的方法,然後找到在更小的塊這樣的方式(比如說一天拆分如果數據是時間相關的,或者只是1000條記錄的時間,任何適合。)
相關問題
- 1. 如何在SQL Server 2008中同時執行兩條命令
- 2. 執行兩個命令行同時
- 3. ssh:執行幾條命令
- 4. SQL Server的OPENQUERY來執行命令
- 5. 在cmd中執行幾個命令。執行只有一個命令
- 6. 執行sql命令
- 7. 執行綠命令,同時運行(Raspbian)
- 8. 如何從SQL Server的命令行工具執行sql查詢?
- 9. SQL Server執行命令30秒後超時異常
- 10. 的SQL Server命令超時 - 可執行文件只
- 11. 命令行命令的執行時間
- 12. 執行頁面時SQL命令失敗
- 13. SQL Server命令,
- 14. SQL命令無法執行
- 15. SQL命令執行除法
- 16. 試圖執行sql命令
- 17. SQL命令不執行
- 18. SQL函數中的SQL Server執行(sp_executesql)命令
- 19. 試圖執行一個SQL命令
- 20. MYSQL命令執行多個.sql文件
- 21. 執行同時執行的命令並在完成時退出
- 22. 在SQL Server中一次執行幾個.sql文件的方法
- 23. Sql Server SHRINKDATABASE命令
- 24. SQL Server BCP命令
- 25. SQL Server像命令
- 26. SQL Server Kill命令
- 27. 如何在同一個進程上執行幾個maven部署命令
- 28. 一個可執行函數中的幾個終端命令
- 29. 執行tcpstat命令並同時對其輸出執行
- 30. 如何包含幾個sql命令?
這聽起來可疑地像程序性解決方案而不是基於集合的解決方案。如果您向我們展示一些代碼,我們可能會告訴您一種可以一次調用存儲過程的方式。 –
你從哪裏執行proc?另一個SQL批處理或某種外部調用方式,如(線程化的......).NET程序集?另外100個並行執行並不一定會「加快」的處理 - 有你確信你沒有可能招致鎖,資源爭奪等與此PROC運行併發實例的不平凡的號碼? – pelazem
我在表中記錄了我正在循環並通過proc運行它們的記錄。我正在處理200萬條記錄,並試圖找到通過所有記錄的最快方法 – Jim