我有一個選擇在我的存儲過程中返回4000 +行。我打算把這個臨時表格放在程序後面的數據中。好的在同一存儲過程中使用臨時表和表變量?
我也有各種其他選擇,只返回100-300行。我準備製作這些表格變量,以便在後面的程序中再次運行。
可以在同一過程中使用臨時表和表變量,還是會導致任何性能問題?
我有一個選擇在我的存儲過程中返回4000 +行。我打算把這個臨時表格放在程序後面的數據中。好的在同一存儲過程中使用臨時表和表變量?
我也有各種其他選擇,只返回100-300行。我準備製作這些表格變量,以便在後面的程序中再次運行。
可以在同一過程中使用臨時表和表變量,還是會導致任何性能問題?
是的,沒關係。對於編程實踐,如果我正在讀取存儲過程,我更喜歡一種類型或另一種類型(傾向於表變量)。但是,您可能有充分的理由使用其中一種,例如在臨時表上使用索引或將其用於select into
,然後繼續。
我覺得這裏有很多因素我們不知道的,比如你的公司的資源,你的時間限制等
一般來說,它是好的使用臨時表用於此目的。和100-300行(在選擇中提到) - 這是花生。別擔心。
這是你需要尋找一個完整的選項sommarskog.se - share_data
如果能夠各項指標添加到臨時表是一個特別的原因,我有時會選擇臨時表。
爲了避免連續敲擊臨時數據庫,並且如果不需要索引,那麼我將使用表變量。
現在我經常使用大量的CTE
s,它們協同工作並避免使用任何物化表。
經典答案 - 「它取決於!」
我會第二個經典答案。嘗試使用臨時表和表變量,並查看哪些更適合您的用例。 我也會加上小心CTE。由於它們的結果沒有被緩存,所以它們可能導致性能不佳,因此完整的CTE查詢最終可能會在連接中使用時一次又一次地執行。 –