1 / 34
文档名称:

第10章创建SQL SERVER索引文件.ppt

格式:ppt   大小:1,388KB   页数:34页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第10章创建SQL SERVER索引文件.ppt

上传人:SSL2021 2021/10/22 文件大小:1.36 MB

下载得到文件列表

第10章创建SQL SERVER索引文件.ppt

相关文档

文档介绍

文档介绍:第10章创立SQL SERVER索引文件
2. 创立索引的优、缺点
(1)创立索引的优点
通过创立唯一索引,可以保证数据记录的唯一性。
可以大大加快数据检索速度。
可以加速表与表之间的连接,这一点在实现数据的参照完整性
方面有特别的意义。
在使用ORDER BY和GROUP BY子句中进行检索数据时,可以
显著减少查询中分组和排序的时间。
使用索引可以在检索数据的过程中使用优化隐藏器,提高系统
性能。
(2)创立索引的缺点
创立索引要花费时间和占用存储空间。
建立索引加快了数据检索速度,却减慢了数据修改速度。

考虑建索引的列:如果在一个列上创立索引,该列就称为索
引列。索引列中的值称为关键字值。考虑建索引的列有如下这些:
主键:通常,检索、存取表是通过主键来进行的。因此,应该考虑在
主键上建立索引。
 连接中频繁使用的列:用于连接的列假设按顺序存放,系统可以很快地
执行连接。如外键,除用于实现参照完整性外,还经常用于进行表的连
接。
在某一范围内频繁搜索的列和按排序顺序频繁检索的列。
(2) 不考虑建索引的列:建立索引需要产生一定的存储开销,在进行插入
和更新数据的操作时,维护索引也要花费时间和空间,因此,没有必要
对表中的所有列都建立索引。一般来说,如下一些列不考虑建立索引:
很少或从来不在查询中引用的列,因为系统很少或从来不根据这个列
的值去查找数据行。
只有两个或很少几个值的列〔如性别,只有两个值“男〞或“女〞〕,以
这样的列创立索引并不能得到建立索引的好处。
 以bit、text、image数据类型定义的列。
数据行数很少的小表一般也没有必要创立索引。
聚簇索引与非聚簇索引
聚簇索引〔Clustered Index〕对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上,即聚簇索引与数据是混为一体的,它的叶节点中存储的是实际的数据。
非聚簇索引〔Nonclustered Index〕具有完全独立于数据行的结构,使用非聚簇索引不用将物理数据页中的数据按列排序。非聚簇索引的叶节点存储了组成非聚簇索引的关键字值和行定位器。
注意: 每张表只能有一个聚簇索引
由于聚簇索引改变表的物理顺序,所以应先建聚簇索引,
后创立非聚簇索引
创立索引所需的空间来自用户数据库,而不是TEMPDB
数据库
主键是聚簇索引的良好候选者
一张表可创立多达249个非聚簇索引
创立索引时,缺省为非聚簇索引
索引的创立与管理
-SQL语句创立索引
CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX 索引名 ON {表名|视图名}(列名[ASC|DESC][ ,...n ]) [WITH [PAD_INDEX] [[,] FILLFACTOR = 填充因子 ]
[[,] DROP_EXISTING]]
其中:  UNIQUE:用于指定为表或视图创立唯一索引,即不允许存在索引
值相同的两行。
 CLUSTERED:用于指定创立的索引为聚集索引。
 NONCLUSTERED:用于指定创立的索引为非聚集索引。
 PAD_INDEX:用于指定索引中间级中每个页〔节点〕上保持开放的空间。
 FILLFACTOR =填充因子 :用于指定在创立索引时,每个索引页的数据
占索引页大小的百分比,填充因子的值为1到100。
 DROP_EXISTING:用于指定应删除并重新创立已命名的先前存在的聚集
索引或者非聚集索引。
关于创立索引的事实和指导原那么:
当在某列创立 PRIMARY KEY 约束或 UNIQUE 约束的时候,SQL Server 自动为此列创立索引
必须是表的拥有者才能执行 CREATE INDEX 语句
可以在视图上创立索引
 SQL Server 在 sysindexes 系统表内存储索引信息
在列上创立索引之前查看列上是否已经创立索引了
在比较小的列上定义索引以使索引也比较小。小的索引更有效率
选择惟一性好的列创立索引,使每个键值标识较少的行
创立聚集索引的时候,所有现存的非聚集索引都会被重建
【例10-1】在JWGL数据库的BOOK表上创立一个名book_id_index的唯一性聚簇索引,索引关键字为book_id,升序,填充因子50%。
USE jwgl
GO
CREATE UNIQUE CLUSTERED INDEX book_id_inde