这不是一编介绍如何使用索引或强调索引在查询中有多高效的文章.
仅在此记录下测试索引速度时遇到的一点神奇的东东.
表现在数据量2383742条,表结构可在接下来的图片中看到
遇到的问题:在使用一个分组语句select filetype_id from UrlData group by FileType_ID时,对于我这个新手所猜测的如果没有相应的字段索引的话应该是不会使用索引的.但让我们看一下他的执行.
typetest:filetype_id字段索引,非聚集,分组后仅有四条.
urlpathtest:urlpath 字段索引
1.有聚焦索引,但非filetype_id字段.
SQL Server 执行时间:
CPU 时间 = 2730 毫秒,占用时间 = 84884 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 184 毫秒。
(注:这里我禁用的typetest索引)
从图上我们可以看出在分组查询过程中使用的聚集索引.而我的SQL语句中并没有用到聚集索引的字段UrlPath.从时间上看它跟无索引的时间是相差无几的(电脑性能受到影响,实际上1和2的时间是差不多的.)
这里要吐嘈一下了,虽然聚集长的功能强大点,但也不能那儿都有你份儿吧.
求指点原因
2.无聚焦索引
看一下mssql的分析
这里是正常情况,没有使用索引.
SQL Server 执行时间:
CPU 时间 = 2903 毫秒,占用时间 = 61410 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
3.使用相应的索引typetest
SQL Server 执行时间:
CPU 时间 = 560 毫秒,占用时间 = 1583 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
事情就到此结束了,为此请当善用聚集索引,虽查询不出问题,但会在插入和更新的占用维护时间.
不知道执行计划如何显示的朋友,请看工具栏"执行"按钮后第七个复选按钮.
如果看了也没明白什么意思,那就当饭后消遣吧.
同样,求喷