3
A
回答
6
結果會因數據更容易存儲在磁盤(#temp)或內存(@temp)中而有所不同。
從下面引用
- 一些摘錄臨時表是創建並填充磁盤上,在系統數據庫tempdb中。
- 在內存中創建一個表變量,因此比#temp表執行得稍好一點(也因爲在表變量中鎖定和記錄的次數更少)。一個表變量仍然可以執行tempdb的I/O(這是#temp表的性能問題使它們變得明顯的地方),儘管文檔對此並不十分明確。
- 與臨時表相比,表變量導致存儲過程的重新編譯更少。
- [Y]您可以在臨時表上創建索引以提高查詢性能。
關於你與50,000列特定情況:
隨着數據規模變大,和/或臨時數據增加了重複使用,你會發現,使用#TEMP表使更有意義
參考文獻:
3
可以有使用表變量和臨時表之間有很大的性能差異。在大多數情況下,臨時表比表變量快。我從私有SQL Server MVP新聞組中收到以下提示,並獲得Microsoft的許可與您分享。一個MVP注意到,儘管使用表變量的查詢並未在大型SMP框中生成並行查詢計劃,但使用臨時表(本地或全局)並在相同情況下運行的類似查詢確實會生成並行計劃。
更多來自SQL Mag(不幸的是需要的捐款,我會試着找到暫時更多的資源)
編輯:下面是一些更深入的信息從CodeProject
相關問題
- 1. SQL Server表變量VS臨時表
- 2. 本地臨時表的SQL Server 2000
- 3. SQL Server,具有刪除與刪除臨時表與變量表
- 4. SQL Server性能臨時表或變量
- 5. SQL臨時表變量
- 6. 沒有臨時表的SQL Server 2000數據透視表?
- 7. Sql Server 2016臨時表或表變量WHILE循環裏面
- 8. 全球臨時表 - SQL Server與Oracle
- 9. 本地臨時表的默認鎖定粒度 - Microsoft SQL Server 2000
- 10. SQL CLR - 表變量或臨時表與集合
- 11. 使用SQL Server臨時表
- 12. 臨時表SQL Server等
- 13. SQL Server聯合臨時表
- 14. 2016年SQL Server臨時表
- 15. SQL Server 2005臨時表
- 16. 加入臨時表SQL Server
- 17. 臨時表vs表變量
- 18. 臨時表與臨時表變量索引
- 19. 的SQL Server:存儲過程到臨時表變量的值
- 20. SQL Server 2000表優化
- 21. 動態SQL中的臨時表(SQL-Server)
- 22. Lucene.NET與SQL SERVER 2000
- 23. sql server 2000 TSQL:在表變量上創建索引
- 24. 臨時表和表變量之間的區別在SQL 2005中
- 25. 與臨時表
- 26. SQL Server表:需要很長時間才能在SQL Server 2014中連接臨時表變量(@table)
- 27. 將表變量更改爲臨時表
- 28. 從SQL Server表變量
- 29. SQL Server中的表變量
- 30. SQL Server:表變量更新
以我的經驗50K將太多對於表var,但我沒有硬數據來支持。我通常會嘗試保持桌面變量小於5K。 – brendan 2009-04-21 19:39:06
您可以在#表格上創建附加索引,而不能在增值表上創建。 – Joe 2009-04-21 19:47:31