2012-08-09 28 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