SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇)
<div id="cnblogs_post_body">SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇)在第一篇里大家先搭建好测试环境,了解SQL Server中的执行引擎,了解一下表的信息,在第二篇再跟大家详细地说清楚索引
在第三篇里跟大家说一下统计信息。
因为篇幅比较长,所以暂时分成第一篇、第二篇、第三篇,不然大家看得很痛苦
---------------------------------------------------------------开始-----------------------------------------------------
先给出一篇文章的地址,都是博客园里的文章:
http://www.cnblogs.com/CareySon/archive/2012/05/23/CoreConceptOfExcutionEngine.html
《SQL Server中的执行引擎入门》,这篇文章主要讲了:执行引擎、执行计划、查询优化器
对执行引擎 、执行计划的了解或者掌握对SQLSERVER的索引查找数据方法是很有必要的,因为是环环相扣
如果阁下不对执行引擎 、执行计划先进行一下了解,下面的内容阁下会看得一头雾水
再看一下SQLSERVER为每个表记录了哪些信息 因为博客园的图片上传功能出了一些问题
我先给出图片链接
http://images.cnblogs.com/cnblogs_com/lyhabc/377530/o_索引和统计信息.jpg
打开SSMS,点击表的+号,可以看到SQLSERVER一般记录了表的列信息、主键、约束、触发器、索引和统计信息
列信息、主键、约束、触发器就不说了,一般SQLSERVER查找目标数据都要使用到索引和统计信息
--------------------------------------------搭建测试环境-----------------------------------------------
请确保阁下的计算机里有范例数据库AdventureWorks,并在数据库里建立两张新的规范表格
<div class="cnblogs_code"> 1 USE 2 3 DROP TABLE .SalesOrderHeader_test 4 GO 5 DROP TABLE .SalesOrderDetail_test 6 GO 7 8 SELECT * INTO dbo.SalesOrderHeader_test 9 FROM sales.10 GO11 12 SELECT * INTO .SalesOrderDetail_test13 FROM sales.14 GO15 16 CREATE CLUSTERED INDEX SalesOrderHeader_test_CL17 ON .SalesOrderHeader_test()18 19 GO20 21 CREATE INDEX SalesOrderDetail_test_NCL22 ON .SalesOrderDetail_test()23 GO
页:
[1]