所以我編寫了幾個存儲過程,這些存儲過程通過輸入一個ID號來處理單個數據行。我想保留幾個存儲過程,可以在我的數據庫方案的不同級別調用此存儲過程。例如,當插入一行時,我調用這個存儲過程。當別的東西被修改時,我想爲每一行調用這個存儲過程。這樣我就可以擁有一組可以在其他地方調用的基本代碼,但是這些基本代碼會對不同數量的數據起作用。我已經能夠用光標產生這個結果,但我被告知這些效率非常低。有沒有其他的方式來產生這種功能而不犧牲性能?謝謝。T-SQL優化各種存儲過程的性能問題
回答
是的。使用標準連接在集合上操作而不是在RBAR(行通過Agonizing Row)上操作。即不是爲每一行調用一個函數,而是設計一個連接,作爲設置操作對每一個適用的行執行所需的操作。
我經常看到devs使用'函數在每一行上運行',雖然這似乎是封裝邏輯的一種明顯方式,但它在SQL Server或大多數數據庫引擎上表現不佳。
在某些情況下,可以有效地使用表值函數(MS SQL Server)。
(順便說一句,你說的光標效率不高)。
嗯,我以爲你無法在select語句中調用存儲過程。我怎樣才能使用一個存儲過程來接收ID號並在連接中調用它?謝謝。 – 2010-08-16 00:33:18
@Bob L:我建議你不要。 – 2010-08-16 00:39:11
我明白了......所以讓它成爲一個函數或什麼東西? – 2010-08-16 00:39:42
- 1. 優化TSQL存儲過程
- 2. 存儲過程的性能問題
- 3. 存儲過程性能問題
- 4. SQL Server - 存儲過程性能問題
- 5. SQL Server存儲過程性能問題
- 6. 優化Oracle存儲過程
- 7. 優化存儲過程
- 8. 存儲過程SQL優化
- 9. 優化存儲過程
- 10. 存儲過程優化
- 11. 優化存儲過程的循環來提高性能
- 12. MySQL規範化存儲過程性能
- 13. TSQL存儲過程廢話
- 14. TSQL:存儲過程和ROWLOCK
- 15. TSQL存儲過程和XQuery?
- 16. Sitecore性能優化 - 圖像存儲
- 17. 優化很長的存儲過程
- 18. 如何優化我的存儲過程?
- 19. Mysql - 存儲過程併發性問題
- 20. SQL Server 2008的存儲過程的性能問題
- 21. 帶有多個相似子查詢的存儲過程的TSQL優化
- 22. 優化在asp.net應用程序中informix存儲過程的性能?
- 23. DataSet和存儲過程之間的性能問題
- 24. 大型數據集上的ODP.Net存儲過程性能問題
- 25. 存儲過程中的光標性能問題
- 26. 運行存儲過程時的性能問題
- 27. 如何優化存儲過程?
- 28. 存儲過程計劃優化
- 29. 如何優化此存儲過程?
- 30. 如何優化存儲過程
鮑勃,當你說「行事」你是什麼意思?你審計的行動?您是否通過這些程序更新了參照完整性? – 2010-08-16 04:22:03