摘要: 聚簇索引和非聚簇索引的一个标志性区别就是聚簇索引的叶节点对应着数据页,从中间级的索引页的索引行直接对应着数据页。而非聚簇索引的索引B+树叶节点不是直接指向数据页面的。如果表有聚集索引或索引视图上有聚集索引,则行定位器是行的聚集索引键。如果聚集索引不是唯一的索引,SQL Server 将添加在内部生成的值(称为唯一值)以使所有重复键唯一。此四字节的值对于用户不可见。仅当需要使聚集键唯一以用于非聚集索引中时,才添加该值。SQL Server 通过使用存储在非聚集索引的叶行内的聚集索引键搜索聚集索引来检索数据行。View Code --创建一个测试数据表create table tb_index_. 阅读全文
posted @ 2011-04-14 15:33 雁北飞 阅读(17466) 评论(0) 推荐(1) 编辑
摘要: 一.文件: SQL Server 会将数据库中的数据映射为一组操作系统的文件,一个文件只能有一个数据库访问。 SQL Server 数据库具有三种类型的文件:主数据文件主数据文件是数据库的起点,指向数据库中的其他文件。每个数据库都有一个主数据文件。主数据文件的推荐文件扩展名是 .mdf。次要数据文件除主数据文件以外的所有其他数据文件都是次要数据文件。某些数据库可能不含有任何次要数据文件,而有些数据库则含有多个次要数据文件。次要数据文件的推荐文件扩展名是 .ndf。日志文件日志文件包含着用于恢复数据库的所有日志信息。每个数据库必须至少有一个日志文件,当然也可以有多个。日志文件的推荐文件扩展名是. 阅读全文
posted @ 2011-04-14 12:02 雁北飞 阅读(887) 评论(0) 推荐(0) 编辑
摘要: Index Seek就是SQL在查询的时候利用建立的索引进行扫描,即先扫描索引节点,即遍历索引树,在查找到相应叶子节点后,对于聚簇索引是直接取值叶子节点,而对于非聚簇索引是根据叶子节点中rowid去查找相应的行。而对于Index Scan是从头到位遍历整张数据表的所有行,从头到尾,因此在数据量很大时效率并不是很高(在Index是聚簇索引的情况,在是非聚簇索引的情况下呢)。 SQL有一个查询优化分析器Query Optimizer,其在执行查询之前首先会进行分析,当查询中有可以利用的索引时,其会优先分析使用Index Seek进行查询的效率,在使用Index Seek查询效率并不好的情况下,其会 阅读全文
posted @ 2011-04-14 00:22 雁北飞 阅读(8757) 评论(1) 推荐(3) 编辑