我在c#中編寫應用程序。我在事務內使用臨時表。我的服務器是sql 2005.是否存在任何性能威脅,我在某些地方讀到應該避免在交易中使用臨時表(http://www.sql-server-performance.com/tips/temp_table_tuning_p1.aspx在2003年2月24日添加的屏幕底部的帖子)。sql 2005中的臨時表和事務
0
A
回答
2
這很容易測試。
在一個查詢窗口運行以下
BEGIN TRAN
CREATE TABLE #T1(I INT)
INSERT INTO #T1 VALUES (1)
然後在另一個查詢窗口運行相同。你會發現沒有阻塞。
所以在這個尖端
它會阻止他人執行 相同的查詢,極大地傷害了 併發性和性能的要求。在 效果中,這會將您的應用程序 轉變爲單用戶應用程序。
似乎不真實。
+0
我在我的應用程序中也檢查過它,似乎同時適用於許多用戶 – Darqer 2010-09-03 19:21:51
0
答案在第一行:「一般來說,如果可能,應該避免臨時表。」看看你的應用程序是否足夠快。儘量避免僅基於臨時表的設計。臨時表的使用應該是應用程序中的異常而非規則。嘗試在不增加成本的情況下尋找替代設計(花在構建新設計上的時間)。
看看這篇文章,看看性能如何受到數據量的影響: http://www.sql-server-performance.com/articles/per/temp_tables_vs_variables_p1.aspx
相關問題
- 1. SQL Server 2005臨時表
- 2. SQL 2005 - 臨時表問題
- 3. SQL Server 2005和臨時表範圍
- 4. 臨時表和表變量之間的區別在SQL 2005中
- 5. SQL Server 2005事務
- 6. 何時使用SQL Server 2005中的臨時表
- 7. 在事務中截斷Oracle臨時表,截斷* ALL *臨時表
- 8. Sql服務器臨時表
- 9. SQL服務器中的臨時表
- 10. 存儲在臨時表中的sql查詢事務
- 11. 臨時表的CloverETL事務塊
- 12. SQL Server 2005中的臨時表不會自動丟失
- 13. SQL Server 2005:事務死鎖
- 14. SQL Server 2005中的分佈式事務
- 15. SQL臨時表和複製
- 16. 在SQL Server 2005中輸出到臨時表
- 17. SQL Server 2005 - 在多用戶環境中使用臨時表
- 18. 臨時表FOR XML AUTO,ELEMENTS - SQL Server 2005中
- 19. sql中的臨時表
- 20. SQL臨時數據庫,臨時表和表之間的區別
- 21. T-SQL動態SQL和臨時表
- 22. 是否更改表提交在SQL Server 2005中的事務
- 23. 更新一個事務中的模式和行,SQL Server 2005
- 24. VS2008和SQL Server 2005存儲過程中的事務
- 25. SQL Server 2005的事務日誌太大
- 26. 動態SQL中的臨時表(SQL-Server)
- 27. 在SQL Server 2005/2008中創建一個類似當前表的臨時表
- 28. SQL服務器:從臨時表
- 29. 如何從c#中的sql server 2005中的datagridview記錄創建臨時表#
- 30. T-SQL臨時表
你可以舉一個你正在做的需要臨時表的操作的例子嗎?我個人無法想象爲什麼你會使用它們,當你可以將內容存儲在C#中 – 2010-09-03 08:20:23
我有一個ID列表,並希望使用此列表來篩選選擇語句的結果。我把這個列表放到臨時表中,並在WHERE部分我篩選出 – Darqer 2010-09-03 08:35:33
這就是我們所做的。傳遞一個Guid列表,將其拉入臨時表並使用存在的動態SQL語句(sp)過濾。 在我們的應用程序中找不到任何性能威脅。 適用於行的行列。 但我們不使用交易,因爲我們只爲我們的概覽頁面採用臨時表。 我們將臨時表用於分層數據的複雜過濾機制。 – Khh 2010-09-03 12:25:20