我有我的MS Sql Server數據庫中的4個視圖,都是相當快(少於2秒),並返回所有少於50行。SQL Server - 加入4個快速查詢給我一個緩慢的查詢
但是當我創建一個查詢,我加入這4個視圖(左外連接)時,我得到一個查詢需要將近一分鐘才能完成。
我認爲查詢優化器在這裏做的不好,有沒有什麼辦法可以加快速度。我很想把4個視圖中的每一個都複製到一張表中,然後將它們結合在一起,但這對我來說似乎是一種太多的解決方法。
(旁註:我不能設置任何索引上的任何表,因爲觀點來自不同的數據庫,我不允許有任何改變,所以這不是一個選項)
編輯:我很抱歉,但我不認爲發佈SQL查詢將有所幫助。它們非常複雜,使用大約50個不同的表格。我無法發佈執行計劃,因爲我沒有足夠的訪問權限來生成某些數據庫的執行計劃。
我想我現在最好的解決方案是生成臨時表來存儲每個查詢的結果。
發佈查詢? – Ghost 2012-07-30 15:16:03
如果不從視圖或查詢計劃的結果中共享SQL,您不可能得到任何有意義的答案。 – 2012-07-30 15:16:45
大部分DBA都願意授予「標準」開發者權限:'授予您的用戶的SHOWPLAN;把你的用戶跟蹤到你的用戶;授予查看服務器狀態給YourUser; 「擁有這些權利將使您的工作變得更加輕鬆。 – Andomar 2012-07-30 15:41:09