2012-08-09 62 views
1

在存儲過程中的SQL Server 2008R2針對的ItemData表運行以下查詢:如何保持以下TSQL查詢從100%運行我的服務器?

SELECT TOP(500) ItemListID, GeoCity, GeoState, GeoDisplay, Title, Link, Description, CleanDescription, OptimizedDescription, PubDateParsed, ImageBytes, DateAdded FROM (  SELECT TOP(500) ItemListID, GeoCity, GeoState, GeoDisplay, Title, Link, Description, CleanDescription, OptimizedDescription, PubDateParsed, ImageBytes, DateAdded, ROW_NUMBER()    
     OVER(ORDER BY ItemListID DESC) 
     AS RowNumber 
     FROM ItemData 
     WHERE CONTAINS(Title, @FTSSearchTerm ) -- ' + @OriginalSearchTerm + '"') 
     AND (WebsiteID=1 AND 
            (@GeoCity = '-1' OR GeoCity = @GeoCity) AND 
            (@GeoState = '-1' OR GeoState = @GeoState)) 
        ) ItemData WHERE RowNumber >= (@PageNum - 1) * @PageSize + 1 AND RowNumber <= @PageNum * @PageSize ORDER BY ItemListID DESC 

     SELECT @NumberOfResultsReturned = @@ROWCOUNT   

     SELECT @ActualNumberOfResults = COUNT(*) FROM ItemData WHERE CONTAINS(Title, @FTSSearchTerm ) -- ' + @OriginalSearchTerm + '"') AND (WebsiteID=1 AND  (@GeoCity = '-1' OR GeoCity = @GeoCity) AND (@GeoState = '-1' OR GeoState = @GeoState)) 

根據查詢使用或者CONTAINSFREETEXT數據。

隨着加載此查詢運行速度非常慢,窺探100%的服務器。

我已經設置了以下指標:

enter image description here

什麼我必須這樣做這些查詢停止運行這麼熱?

謝謝。

- UPDATE -

該表具有對標題和說明一個簇索引僅包含ItemListID的,和FTS。

我添加了一個非聚集索引(在標識名稱不正確地命名)如下:

Non-clustered indexes

回答

0

沒有真正尋找到的執行計劃,好像你需要一個非聚集索引標題,GeoCity,GeoState和WebsiteID,包括以下列:ItemListID,GeoDisplay,Link,Description,CleanDescription,OptimizedDescription,PubDateParsed,ImageBytes,DateAdded

這將允許執行計劃使用一個非聚集索引包含所有的您在此查詢中查找的信息。如果沒有它,它會使用你顯示的索引之一,並且仍然需要到表中去獲取你需要的數據。

雖然這並不能完全解決您的問題,但取決於您的表格中有多少數據,對標題進行搜索的操作總是很昂貴。如果你可以利用full text searching做搜索部分,那將是最好的。

希望這有助於!

+0

好吧,我應該刪除當前的索引(PK除外),然後添加一個包含您提到的字段的非聚集索引?你提到使用CONTAINS很貴(Title),但是我已經在Title和Description上創建了一個全文索引(後者我目前沒有用於我的查詢)。我注意到我的物業沒有時間表 - 我是否需要添加一些自動填充時間表? – ElHaix 2012-08-09 13:47:07

+0

我不能說你應該刪除任何索引而不理解系統的其他部分如何與數據庫交互。但是,您可以使用Glenn Berry的一些精彩查詢來幫助您調整索引。 https://sqlserverperformance.wordpress.com/tag/dmv-queries/ – 2012-08-09 13:50:08

+0

至於全文搜索,真棒!那麼就我所知,沒有什麼需要你做的了。 – 2012-08-09 13:51:36

相關問題