SQL优化实战:排序字段
http://tech.ddvip.com 2008年08月27日 社区交流
内容摘要:省掉排序的操作。有时候,排序和时间是有相关性的,而聚集索引,没有建在时间上,会导致排序成本的增加,恰当的利用自增ID来做时间排序,也能省掉很多开销。
查到有这样一段话,很耗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来做时间排序,也能省掉很多开销。
作者:perfectdesign 责编:豆豆技术应用
- SQL Server 2008 教程
- SQL Server 2005 教程
- SQL Server 安全设置
- SQL Server 故障解决
- SQL Server 安装配置
- SQL Server 备份恢复
- SQL Server 性能调优
- SQL Server 存储过程
- SQL Server 函数
- SQL Server 事务
- SQL Server 查询
- SQL Server 索引
- SQL Server 入门教程
- SQL Server 数据类型
- SQL Server 数据库表
- SQL Server T-SQL
- SQL Server 语句
- SQL Server 死锁
- SQL Server 加密
- SQL Server 数据库连接
- SQL Server 数据仓库
- SQL Server 数据库管理
- 更多SQL Server 专题>>>