积木首页 - 学院 - 软件测试 - 技术百科 - 问答 - 黄页 - 手册 - 站长工具 - 社区
登录 | 注册
积木技术社区 » SqlServer » sql 索引问题!
打印 楼主:上上上 发表于 2011-01-16 11:49 [回复37次/有效35个,浏览763次]

sql 索引问题! [精]

select * from t where a=1
表数据几十行,测试阶段!
我在a字段上建立了非聚集索引,a是外键!
我在查询分析器执行的时候,查看执行计划!没有用到我建的那个非聚集索引!为何?
2楼 发表于 2011-01-16 11:54
晕,不懂!!!
3楼 发表于 2011-01-16 12:10
每次通过聚集索引树进行index seek,IO开销最坏情况下是一个根节点,一个中间级节点,一个数据页,一共要seek100次,开销300个逻辑IO。综上,通过nonclustered index seek总共开销是305个IO。
要知道,我们的基础表数据页一共才250页,这说明了啥?说明就算是我从头到尾扫描一遍表也比noncustered index seek快。这时,SQL2k5会产生一个完完全全的clustered index scan执行计划来搞定表扫描。
看这个呀.
4楼 发表于 2011-01-16 12:10
你select a from t where a=1就走你的索引了。
5楼 发表于 2011-01-16 12:24
...
一帮老鬼...
6楼 发表于 2011-01-16 12:40
恩,执行计划是以成本来估算的,走不走索引只是一种内部行为.
7楼 发表于 2011-01-16 13:07
外健要單獨建索引,表數據少時不會用到,可用表提示完成
8楼 发表于 2011-01-16 13:09
呵呵,
9楼 发表于 2011-01-16 13:44
看4楼的.
10楼 发表于 2011-01-16 14:00
7000 也才 7000 字节啊? 一页是 8 * 1024 字节啊(除去保留的空间, 还有 8060 字节可以存数据)
可以用除法算算嘛
11楼 发表于 2011-01-16 14:16
9 行? 9 行记录还不够一页吧?
如果走索引, 再到表中拿数据, 至少要两页
直接从表拿数据才一页
当然不走你的索引啦
12楼 发表于 2011-01-16 14:27
さっぱり わからん
13楼 发表于 2011-01-16 14:43
噢,老大 ^^
我是看着老大的书一路走过来的,记得06年我坐公交车天天都带着那本sql server开发与管理,一有空就看。
14楼 发表于 2011-01-16 14:56
其实这个问题应该是这样:
你一共有9条记录,满足条件的有3条。
你的sql是select *
如果要用你的非聚集索引,那么sql server要从非聚集索引的根开始查找-->到非聚集索引中间级索引页-->非聚集索引索引叶子层
然后根据索引叶子层的聚集索引键-->到聚集索引根-->到聚集索引中间级索引页-->数据页
而如果直接用聚集索引查找,那么就是聚集索引根-->到聚集索引中间级索引页-->数据页.
关键是看哪个成本高了。
如果你是10W记录,满足的只有3条,就肯定用你的非聚集索引了。
15楼 发表于 2011-01-16 14:59
就是呀..
都叫他去看我红色字的..
偶一点民望也没..都看老大的.
16楼 发表于 2011-01-16 15:41
to: perfectaction
你没有数据,就敢说有多少页。。。
------------------------------------------
一行记录8060字节, 这是上限, 一页 8 K, 差不多一页最少是 10 条记录
楼主说才 9 条记录, 你说理论的页数是不是 1 页呢?
当然, 如果数据经过大的变动, 导致数据存储不连续, 这种情况会超过1页的, 但我说的也是估计值
17楼 发表于 2011-01-16 15:44
9条,如果某列是char(7000)呢?
18楼 发表于 2011-01-16 15:52
学习了
19楼 发表于 2011-01-16 16:01
外键是约束,不是索引
21楼 发表于 2011-01-16 16:33
Garnett_KG 这厮够坏滴! 囧
标题:
内容:

PHP: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码 - 正则表达式 - 热门脚本语言: DOS命令 - vbs - CSS/HTML - python - perl - ruby - shell编程 - Powershell

JS: node.js - JS基础 - extjs - jQuery - JavaScript技巧

网址导航成语大全积木 TinyMCE 服务邮箱: Gimoohr(#)gmail.com
Copyright © 2008 Gimoo.Net  京ICP备05050695号