详解SQL Server数据库索引
2008-10-24 10:09:33 来源:WEB开发网核心提示: 2. 非聚集索引的叶层是由索引页而不是由数据页组成,下图示意了单个分区中的非聚集索引结构:包含列的索引通过将包含列(称为非键列)添加到索引的叶级,详解SQL Server数据库索引(2),可以扩展非聚集索引的功能,键列存储在非聚集索引的所有级别,而是指向数据页的页,若未指定索引类型,而非键
2. 非聚集索引的叶层是由索引页而不是由数据页组成。
下图示意了单个分区中的非聚集索引结构:
包含列的索引
通过将包含列(称为非键列)添加到索引的叶级,可以扩展非聚集索引的功能。键列存储在非聚集索引的所有级别,而非键列仅存储在叶级别。
下面举个简单的例子来说明一下聚集索引和非聚集索引的区别:
我们有一本汉语字典,可以把它的正文本身看做是一个聚集索引,它是按照汉字拼音的开头字母排序的,不再需要查找其他目录。当遇到不认识的字时,需要结合“部首目录”和“检字表”, 先找到目录中的结果,然后再翻到您所需要的页码。通过这种方法查到的目录中字的排序并不是真正的正文的排序方法。把这种看做是一个非聚集索引。
另外,请注意每个表只能有一个聚集索引。
--建立UserAddDate非聚集索引
CREATE NONCLUSTERED INDEX [IX_UserAddDate] ON [ASPNet_zSurvey].[ZS_User]
(
[UserAddDate] ASC
)
非聚集索引 (Unclustered Index) 特点
非聚集索引的页,不是数据,而是指向数据页的页。
若未指定索引类型,则默认为非聚集索引
叶节点页的次序和表的物理存储次序不同
每个表最多可以有249个非聚集索引
在非聚集索引创建之前创建聚集索引(否则会引发索引重建)
二、选择建立哪种索引
1.何时创建聚集索引更能提高性能
Clustered Index会提高大多数table的性能,尤其是当它满足以下条件时:
- ››sql server自动生成批量执行SQL脚本的批处理
- ››详解oracle超大数据库表分区只哈希分区表
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››详解Win8系统获取授权与降级策略
- ››sqlserver安装和简单的使用
- ››详解PHP会话存储方式
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
更多精彩
赞助商链接