你好,並提前感謝。我有一個觀點,當查詢沒有where子句只需要超過0秒返回〜8600行。然而,當我與查詢的WHERE子句,如:SQL Server查詢運行速度緩慢時更改在哪裏條款
SELECT * FROM myView WHERE myID = 123
根據什麼定我到位的123查詢執行時間顯着變化。
現在,在這種情況下「相當」意味着剛好在0秒和3到4秒之間的差異。但是對於某些任務而言,視頻會被頻繁地重複調用,這會使3秒鐘變成30秒或更長時間。
雖然我不能給出視圖本身的代碼,我可以確認的是,:
視圖是由6個標準表(沒有特殊的品質)的接合的。
儘管表A中可能並不總是有與表B連接的記錄,因此在結果中創建了空列,但我已經確認這些實例並不總是導致查詢時間更長或更短。
視圖本身沒有超出標準
Select
,From
和Left Outer Join
子句的子句。某些標識總是導致很長的查詢時間和其他人總是會存在較短的查詢時間
我已經下降,創造了在查詢之間的視圖上起飛的機會,有這是一個緩存的執行計劃次優的。
如果這些已知的變量是不夠的,以減少可能下降到2倍或3個可能的原因我還是想知道是什麼理論問題可能會造成這個問題只是擴大我的理解。
再次感謝,
ProtoNoob
所有表格上的索引是否是從針對查詢和連接進行優化而派生出的視圖? –
是否可以顯示您的視圖的腳本(如果有關係,更改表名稱)? –
服務器上還運行着什麼? –