WEB开发网
开发学院数据库MSSQL Server SQL优化实战:排序字段 阅读

SQL优化实战:排序字段

 2008-08-27 09:55:55 来源:WEB开发网   
核心提示:查到有这样一段话,很耗CPU资源: CodesetstatisticsioonsetstatisticstimeonSELECTTOP10FeedBackID,UserID,ContentID,[Content],Time,AddType,IPFROMCYZoneFeedBackwherecontentidin(sel

查到有这样一段话,很耗CPU资源:

Code
setstatisticsioon
setstatisticstimeon
SELECTTOP10FeedBackID,UserID,ContentID,[Content],
Time,AddType,IPFROMCYZoneFeedBack
wherecontentidin(selectarticleidfromcyzonearticlewhereuserid=@useranddelflag=0andpublishtype<>'b')
andCYZoneFeedBack.DelFlag=0orderbyCYZoneFeedBack.Timedesc

分析是这样的:

SQL优化实战:排序字段

原来是排序造成了这么多开销。罪魁祸首在于 order by CYZoneFeedBack.Time 这句话,后改成: 

Code
setstatisticsioon
setstatisticstimeon
SELECTTOP10FeedBackID,UserID,ContentID,[Content],
Time,AddType,IPFROMCYZoneFeedBack
wherecontentidin(selectarticleidfromcyzonearticlewhereuserid=107anddelflag=0andpublishtype<>'b')
andCYZoneFeedBack.DelFlag=0orderbyCYZoneFeedBack.feedbackiddesc

执行计划变为:

SQL优化实战:排序字段

很明显省掉了排序的操作。有时候,排序和时间是有相关性的,而聚集索引,没有建在时间上,会导致排序成本的增加,恰当的利用自增ID来做时间排序,也能省掉很多开销。

Tags:SQL 优化 实战

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接