查看: 5746|回复: 5

请问一下order by与索引的问题

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2008-7-1 14:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在表B中C字段建了聚集索引,当使用SELECT  A  From B order by C desc
这样执行效率非常高,而且可以走到索引上面去.

我在表B中C字段建了聚集索引,在D上面建了非聚集索引,当使用 SELECT  A  From B order by C desc,D desc
这样执行效率非常非常低,而且走不到索引上面去

大家帮帮我,为什么使用了复合的order by 就不行了
有其它更好的办法可以解决order by C desc,D desc 的问题.这样占资源太大了.
论坛徽章:
6
开发板块每日发贴之星
日期:2008-05-31 01:02:30ITPUB元老
日期:2008-06-23 12:58:52奥运会纪念徽章:蹦床
日期:2008-10-24 13:19:512009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2009-03-10 21:12:51授权会员
日期:2010-07-01 14:33:08
2#
发表于 2008-7-1 14:43 | 只看该作者
关注,用了不少order by 的语句 但是好像没试过在不同索引下的排序。

使用道具 举报

回复
论坛徽章:
2
生肖徽章2007版:鼠
日期:2008-01-02 17:35:532011新春纪念徽章
日期:2011-02-18 11:43:36
3#
发表于 2008-7-1 16:56 | 只看该作者
那你何不建个联合索引?

使用道具 举报

回复
论坛徽章:
0
4#
发表于 2008-7-16 06:30 | 只看该作者

联合索引

我在C,D字段同时归入了聚集索引,但还是不起作用。数据做二次排序,有其它办法可以提升性能吗?数据据是要先按时间排序,再按VIP会员等级排序。

使用道具 举报

回复
论坛徽章:
2
生肖徽章2007版:鼠
日期:2008-01-02 17:35:532011新春纪念徽章
日期:2011-02-18 11:43:36
5#
发表于 2008-7-16 11:58 | 只看该作者
你为何不建desc sort索引?

使用道具 举报

回复
论坛徽章:
0
6#
发表于 2008-7-17 15:22 | 只看该作者
你的表在C字段上建立聚集索引時,select A from B order by C 語句當然會很快。。。因為你隻需要查詢出來,而不必進行排序動作,而你的在D上建立非聚集索引,實際上沒有起到作用,SELECT  A  From B order by C desc,D desc時,由於你的排序字段加入了D,所以,系統不得不增加排序的開銷,導致查詢變慢。。。在C.D上建立聯合聚集索引,使SELECT  A  From B order by C desc,D desc速度加快

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表