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
分析是这样的:
原来是排序造成了这么多开销。罪魁祸首在于 order by CYZoneFeedBack.Time 这句话,后改成:
Code
setstatisticsioon
setstatisticstimeon
SELECTTOP10FeedBackID,UserID,ContentID,[Content],
Time,AddType,IPFROMCYZoneFeedBack
wherecontentidin(selectarticleidfromcyzonearticlewhereuserid=107anddelflag=0andpublishtype<>'b')
andCYZoneFeedBack.DelFlag=0orderbyCYZoneFeedBack.feedbackiddesc
执行计划变为:
很明显省掉了排序的操作。有时候,排序和时间是有相关性的,而聚集索引,没有建在时间上,会导致排序成本的增加,恰当的利用自增ID来做时间排序,也能省掉很多开销。
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
更多精彩
赞助商链接