簡體   English   中英

SQL Server性能臨時表或變量

[英]SQL Server performance temp tables or variables

我目前正在優化存儲過程,因為它由於存在大量計算和輸入而超時。

但是,我不確定情況。 最好使用8個臨時表(它們從數據庫中的其他數據中獲取信息)還是只是將數據庫中的數據放入各種變量中並進行訪問?

哪種方法可以最好地解決超時問題?

取決於您在“ temp”表中有多少個條目。

  • 一個真正的臨時表#temp可以在其上定義索引,SQL Server將對其進行分析以獲取其行數等。並且它確實參與了事務,例如,您可以插入行然后回滾,這些行將“消失”從您的臨時表

  • SQL Server始終將表變量@temp視為僅具有一行-如果您那里只有幾行,這不是問題。 但是,如果您需要存儲數百行,則SQL Server查詢優化器的這種假設可能會導致效率極低的查詢計划。 另外:表變量參與事務-根據您的環境,這可能是好事,也可能是壞事

根據上面的回答,您絕對應該使用臨時表。 您還應該考慮將它們編入索引以提高性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM