SQL Server使用索引实现数据访问优化
2009-06-09 10:31:41 来源:WEB开发网核心提示: “你真是一个天才”,图书员喊到,他立即花费了一些时间创建了书名的目录,通过一个快速的测试,他发现使用书名来查询仅仅需要1分钟,其中30秒查找书的编号,30秒用编号来找书.图书员想到,读者还可能使用其它的凭证来查找图书,例如作者的名字,所以他为作者创建了同样的目录.在
“你真是一个天才”,图书员喊到,他立即花费了一些时间创建了书名的目录,通过一个快速的测试,他发现使用书名来查询仅仅需要1分钟,其中30秒查找书的编号,30秒用编号来找书.
图书员想到,读者还可能使用其它的凭证来查找图书,例如作者的名字,所以他为作者创建了同样的目录.在创建了这些目录后,图书员可以使用这些凭证在1分钟内找到图书.图书员的繁重的工作终于结束了,许多读者也因为很快的查找到图书而聚集在图书馆,图书馆变的非常热闹起来.
图书员随后开始过着他的快乐的生活,故事结束了.
到这里,现在我确信你已经明白了什么是索引,为什么它们如此重要以及它们的内部工作原理,,例如,我们有一个已创建聚焦索引的产品表Products,因为当创建了主键的时候,随即就创建了聚焦索引。我门应当在Productname列创建一个非聚焦索引,一旦我们这样作了,数据库引擎就为非聚焦索引创建一个索引树,象故事里的书名目录,按照产品的名字在索引页里排序。每个索引页包含一定范围的产品名字和与之对应的ProductID,所以当使用产品名字作为凭证搜索的时候,数据库引擎首先查询产品名字的非聚焦索引树来发现这本书的主键productID,一旦发现,数据库引擎就使用主键ProductID来搜索聚焦索引树,从而并得到正确的结果。
索引树的工作原理如下图:
上图被称做为B+树,中间的节点包含一定数量的值,指示数据库引擎当从跟节点搜索一个索引值的时候如何遍历.如果这是一个聚焦索引树,页节点是物理数据页.如果是非聚焦索引树,页节点包含包含索引值和与之对应的聚焦索引值.
- ››sql server自动生成批量执行SQL脚本的批处理
- ››使用linux中的quota教程
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››使用jxl生成带动态折线图的excel
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
更多精彩
赞助商链接