ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » MS SQL Server » 在Northwind样库中,发现个奇怪的问题

标题: [原创] 在Northwind样库中,发现个奇怪的问题
离线 oo4o
中级会员



精华贴数 0
个人空间 0
技术积分 1066 (1694)
社区积分 0 (613729)
注册日期 2005-9-15
论坛徽章:0
      
      

发表于 2008-6-23 17:20 
在Northwind样库中,发现个奇怪的问题

如图所示,orders表总出现对同一个字段建2个非聚集索引的情况,这样做的好处是什么呢?有谁知道吗?
另外,对于ShippedDate这个字段,存在着很多的null值,为什么也要去建索引呢?
我写的如下的sql查询,select * from orders where orderdate>'1996-01-01'为何用不到orderdate上的索引,而只是PK_Orders扫描呢?




oo4o 上传了这个附件:
2008-6-23 17:20
未命名.jpg (579.05 KB)
 

只看该作者    顶部
离线 sqysl
孤独剑客



来自 山东
精华贴数 0
个人空间 0
技术积分 1258 (1379)
社区积分 31 (6182)
注册日期 2006-12-20
论坛徽章:0
      
      

发表于 2008-6-24 10:12 
为什么建两个索引,我不清楚,难道为了分散冲突,增加性能?但为什么走主键索引是这样的,MSSQL会根据最小代价原则选取最好执行路径,如果改成select orderdate from orders where orderdate>'1996-01-01',就走orderdate索引了。如果在你的语句里强制执行索引ORDERDATE,你可以看看执行计划,代价大很多的。

[ 本帖最后由 sqysl 于 2008-6-24 11:17 编辑 ]


__________________
曾经沧海难为水,除却巫山不是云。
天若有情天亦老,人间正道是沧桑。
只看该作者    顶部
离线 oo4o
中级会员



精华贴数 0
个人空间 0
技术积分 1066 (1694)
社区积分 0 (613729)
注册日期 2005-9-15
论坛徽章:0
      
      

发表于 2008-6-24 15:41 
有人知道建两个同样索引的原因吗


只看该作者    顶部
离线 luckyrandom
中级会员



来自 广东-东莞
精华贴数 0
个人空间 0
技术积分 1812 (912)
社区积分 24 (6921)
注册日期 2003-12-30
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-6-24 15:59 
不用去研究别人的BUG或差的东西
MS也有蹩足的产品或技术
美国总统也有愚蠢的地方


__________________
有偿企业系统开发、咨询、维护、故障排除<SQL SERVER+DELPHI>
QQ:315054403 MSN:dgdba@hotmail.com 就职于东莞中大型手袋生产企业,免费咨询勿扰
只看该作者    顶部
离线 sqysl
孤独剑客



来自 山东
精华贴数 0
个人空间 0
技术积分 1258 (1379)
社区积分 31 (6182)
注册日期 2006-12-20
论坛徽章:0
      
      

发表于 2008-6-25 12:40 
我觉得不是不足,肯定是有一定用途的。


__________________
曾经沧海难为水,除却巫山不是云。
天若有情天亦老,人间正道是沧桑。
只看该作者    顶部
离线 oo4o
中级会员



精华贴数 0
个人空间 0
技术积分 1066 (1694)
社区积分 0 (613729)
注册日期 2005-9-15
论坛徽章:0
      
      

发表于 2008-6-29 19:10 
求正解


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问