我遇到性能問題。SQL Server 2008上的大容量繁重讀取加載數據的性能
我們有它出現在一個幾百萬記錄的表,我們服務了一個網頁,點擊該表100的次每秒(一個選擇)。該查詢是由一個非聚集索引(包裹在一個SP中)
我的問題是針對我們想要改善性能的特定場景,是否明智的做法是創建一個總是屈服的視圖對於這個場景300行,併爲視圖編制索引並查詢視圖,或者如果我用已覆蓋的查詢查詢現有的2M plus表,它會沒有什麼區別嗎?
我遇到性能問題。SQL Server 2008上的大容量繁重讀取加載數據的性能
我們有它出現在一個幾百萬記錄的表,我們服務了一個網頁,點擊該表100的次每秒(一個選擇)。該查詢是由一個非聚集索引(包裹在一個SP中)
我的問題是針對我們想要改善性能的特定場景,是否明智的做法是創建一個總是屈服的視圖對於這個場景300行,併爲視圖編制索引並查詢視圖,或者如果我用已覆蓋的查詢查詢現有的2M plus表,它會沒有什麼區別嗎?
您可以儘可能創建與您的查詢匹配的視圖併爲其編制索引。據我所知,你只是想申請一個where子句。這將起作用,它將削減零的運行時間成本。它也將刪除所有不符合條件的行的IO。這是一個好主意。
但是,你可以使用過濾(覆蓋)指數,這要簡單得多。
從覆蓋索引獲取範圍的速度儘可能快。它非常快速。沒有可能的改進。
真正的問題似乎是您要查詢的時間數據庫100的!你不能將這些查詢放到一個或幾個更大的查詢中嗎?可以使用表值參數一次提交多個查詢輸入,可以這麼說。
喜按我的理解,這裏總是產生一個300行的具體情況,您要創建一個view.So如果是這樣的情況下,它能夠處理的選擇性列this.Also創建覆蓋索引的最佳方式在視圖上肯定會提高性能。
據我所知,一個視圖只是在幕後運行選擇 - 我不認爲這會爲您提供一個優勢。 – Bridge 2012-07-24 11:32:19