任何人都可以用簡單的英文將它分解爲在MSSQL中使用臨時表與CTE與表變量之間的性能差異。我經常使用臨時表,並且因爲語法清晰而開始使用CTE,但我發現它們會變慢。我認爲臨時表使用的是系統內存,這就是爲什麼它們看起來很快,但如果嘗試執行多個任務可能會成爲瓶頸。表格變量我很少使用,不知道很多。尋找來自大師的建議!臨時表存儲性能比較
2
A
回答
0
這個問題的在Books Online,MSDN和這個網站中有很好的介紹。
關於臨時表和表變量,你可以在這裏閱讀What's the difference between a temp table and table variable in SQL Server?。 在那裏你會發現在很多情況下,臨時表會導致重新編譯一個程序,這是它們的主要缺點。
的CTE是公這裏http://blogs.msdn.com/b/craigfr/archive/2007/10/18/ctes-common-table-expressions.aspx
0
CTE性能中立。它們通過抽象出SQL語句簡化了開發人員的查詢 - 通常是複雜的JOIN或應用於字段的內置函數。數據庫引擎只是將CTE嵌入到使用它的查詢中。因此,CTE本身並不「慢」,但是您可能會發現使用臨時表的性能更好,因爲數據庫引擎正在使用臨時表創建更好的查詢計劃。
0
相關問題
- 1. 存儲過程性能比較
- 2. 比較兩個表並將一些值存儲在臨時表中
- 3. MySQL性能:視圖與功能與存儲過程的比較
- 4. 性能比較
- 5. 存在速度/安全性差異在臨時表中存儲臨時數據?
- 6. 臨時表查殺性能
- 7. mysql臨時表存儲在內存中?
- 8. 存儲臨時值
- 9. JavaScript臨時存儲
- 10. 比較永久性和臨時性視圖
- 11. 根據性能比較Linq to SQL和存儲過程
- 12. 比較存儲過程性能ex和新版本
- 13. JMH:性能比較
- 14. 使用遊標和臨時表時MySQL存儲過程的性能問題
- 15. 存儲過程不能刪除它不存在的臨時表
- 16. 存儲時間值和比較他們
- 17. 如何比較存儲在表
- 18. 表示在存儲和比較
- 19. 表VS臨時表的性能
- 20. 臨時將數據存儲在Oracle的JTable或臨時表中
- 21. 存儲函數中的臨時表?
- 22. Oracle存儲函數與臨時表
- 23. 存儲過程臨時表問題?
- 24. 存儲過程 - 輸出臨時表
- 25. 序言:臨時列表存儲
- 26. 存儲過程和臨時表
- 27. 如何臨時存儲對象列表
- 28. 存儲過程中的臨時表
- 29. 存儲過程臨時表與參數
- 30. 臨時表和存儲過程編譯
描述相信臨時表(#table)被存儲在系統中分貝,所以不一定在存儲器(也它們繼承某些屬性服務器默認,像覈對)。但我評論的主要原因是說你的標籤是mysql,而不是mssql。 – tomfumb
@tomfumb,它們存儲在tempdb系統數據庫中。 – 2011-08-15 23:54:33