我有以下SQL查詢:SQL超時和查詢性能
SELECT TOP(100)
VIEW_RAUMBUCHUNG_RAUM.RAUMID,
VIEW_RAUMBUCHUNG.VON,
VIEW_RAUMBUCHUNG.BIS,
VIEW_RAUMBUCHUNG.RAUMBEZEICHNUNG,
VIEW_RAUMBUCHUNG.THEMA,
VIEW_RAUMBUCHUNG.V_EMAIL,
VIEW_RAUMBUCHUNG.VERANSTALTER,
VIEW_RAUMBUCHUNG_RAUM.COLOR,
VIEW_RAUMBUCHUNG.RAUMID AS Expr1,
VIEW_RAUMBUCHUNG_RAUM.BEZEICHNUNG
FROM VIEW_RAUMBUCHUNG
RIGHT OUTER JOIN VIEW_RAUMBUCHUNG_RAUM ON VIEW_RAUMBUCHUNG.RAUMID = VIEW_RAUMBUCHUNG_RAUM.RAUMID
是否有改善此問題的方法? VIEW_RAUMBUCHUNG包含27000個條目,即使將結果限制在前100條記錄中,性能也非常低。或者有沒有一種方法來優化SQL Server?
我的第二個問題是,如果我嘗試加載整個27000個條目,我在20秒後得到一個超時,但我將IIS中的超時設置爲120秒。爲什麼是這樣以及如何避免超時?
在此先感謝。
'TOP 100'沒有'ORDER BY'?你想要隨機結果嗎? – 2012-07-10 13:12:59
使用'WHERE'子句並開始刪除不需要的記錄。從你發佈的內容中很難分辨出來。如果您的觀點足夠複雜,則可能會返回20條記錄並需要很長時間才能運行。 – 2012-07-10 13:16:37
在數據量的大計劃中,27000條記錄在統計上與0條記錄無法區分。記錄的數量不是問題。另外,IIS中的超時與您的數據庫有什麼關係?它甚至是數據庫查詢需要很長時間,還是技術棧中其他位置的瓶頸?首先,確定你的實際瓶頸。如果它在數據庫查詢中,則通過分析器運行查詢來查看執行計劃。它應該指示任何表掃描或過多的數據操作。 – David 2012-07-10 13:16:51