在SQL Server 2005中,我有一個涉及大量ish連接的查詢(每個表的數量級從幾千行到幾百萬行,表的平均可能性相當於10-15列的整數和日期時間SQL Server存儲過程中間表
爲了加快查詢速度,我在考慮將一個大查詢分解爲一個存儲過程,該存儲過程執行一些連接,存儲會導致一些臨時表,然後將該臨時表與另一個也是幾個連接結果的臨時表結合在一起。
我目前使用表變量來存儲中間表,以及性能o ne off明顯更好。但在生產中,tempdb
似乎存在IO瓶頸。
有沒有更好的方法來思考解決這樣的問題?我的意思是,在這裏使用表變量的方式?
你能給我們提供關於查詢的更多細節嗎?我不認爲將單個基於集合的查詢拆分爲多個臨時表和查詢會使其更快...... – Matthew 2011-05-09 21:53:27
您的執行計劃是如何看待的? – 2011-05-09 21:53:49
涉及大約8個連接。執行計劃是巨大的各種合併,並尋求和掃描各種表 – 2011-05-09 21:55:20