语句如下:
select PP_pid,PP_value from PValue where PP_value='-'
在PP_value上建立了索引,上面的语句查询分析器会说没有建立 pp_value的索引,全表扫描,
但是:
select PP_value from PValue where PP_value='-'
这时能检测到索引,分析器说是索引查找,这个时候应该是正常的,为什么会有这种情况!
跟数据源有关系吗?pp_value 会有'-',''这样的值!!
select PP_pid,PP_value from PValue where PP_value='-'
在PP_value上建立了索引,上面的语句查询分析器会说没有建立 pp_value的索引,全表扫描,
但是:
select PP_value from PValue where PP_value='-'
这时能检测到索引,分析器说是索引查找,这个时候应该是正常的,为什么会有这种情况!
跟数据源有关系吗?pp_value 会有'-',''这样的值!!
解决方案 »
- 如何查询
- 聚合函数问题
- 如何在插入的时候自动截断超长内容?
- 菜鸟求救:如何在企业管理器中移动表中的记录!
- 我在做SQL server 2005 维护计划时,总提示错误,不能保存,情各位大侠指点一下,
- @@sql2000系统表扫描密度过低@@
- 这条SQL查询怎么写,也不知道能不能一次访问数据库就搞定
- SQL SERVER SP4问题
- 在ado 中,作完sql update语句,怎样判断修改成功呢?help me
- 为什么会出现这种情况?在C++BUILDER里调用存储过程的很奇怪的现象!!!
- 100分求一SQL 大家试着挑战下(分数不够,解决了再补100) 请大家帮帮我 真的很急
- 如何写一个酒店订单的表。。。
如果表中有聚集索引,那索引页也会包含聚焦索引键的数据作来book.
如果没有聚集索引,所以索引页就会保存一个"文件号:页号:位置号"来指向数据页.所以说.select pp_pid,pp_value.的话,如果使用该索引.
那就要通过这个索引中的book到数据表中找pp_pid的数据.
因为你的索引页没有pp_pid的数据.
-----
通过book到数据页中找数据的话,进行的是随机IO.
而表扫描的话,进行的是顺序IO.
----
而如果这时候.优化器认为.随机IO的成本高于顺序IO.
那优化器就会选择表扫描.而不使用这个索引..--
而只是SELECT pp_value..那就是在该索引中,就已经能找到所需要的数据了.
那优化器就可以直接的使用这个索引(查找或扫描)..