第6章 索引的创建与使用概论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/11/20
14
SQL Server2005
例5.2 为sales数据库中的Product表创建一个复合 索引,依据字段CategoryID和Price进行排序。
USE sales GO CREATE INDEX C_P_index ON Product (CategoryID, Price)
不返回大型结果集的查询。
经常包含在查询中的搜索条件的列。
2020/11/20
8
SQL Server2005
唯一索引:确保索引键不包含重复的值。聚集索 引和非聚集索引都可以是唯一索引。可以创建基 于单个字段的唯一索引,也可以对多个字段创建 唯一索引。此时要求多个字段的组合取值不能重 复,但对其中某个单独字段的取值可以重复。
2020/11/20
13
SQL Server2005
例5.1 为sales数据库中的Product表创建一个唯一 聚集索引,依据字段ProductID进行排序。
USE sales GO CREATE UNIQUE CLUSTERED INDEX ProID_index ON Product (ProductID)
2020/11/20
10
5.2 创建索引
SQL Server2005
创建索引可以包括以下两种方式:
使用CREATE TABLE 或ALTER TABLE 命令对列定 义PRIMARY KEY 或 UNIQUE 约束时系统自动创建 索引。
使用 CREATE INDEX 语句或 SQL Server Management Studio 对象资源管理器创建索引。
建立唯一索引的字段最好不允许为空(NOT NULL)
2020/11/20
9
SQL Server2005
复合索引:在对数据表创建索引时,有时创建基 于单个字段的索引不能满足查询要求,这时需要 对表创建多个字段的索引,这样的索引称为复合 索引。在SQL SERVER系统中一个复合索引中 包含的字段最多是16个,并且要求这些字段都属 于一个表。
索引和我们通常见到的图书目录的用途类似。
数据库中的索引是由表中的一列或多列字段值以 及相应的指向表中物理标识这些值的数据页的逻 辑指针构成的。
2020/11/20
3
SQL Server2005
5.1.1 为什么要创建索引
使用索引的好处:
帮助用户提高查询速度 保证数据记录的唯一性 加速表与表之间的连接 表中如果使用ORDER BY和GROUP BY命令进行数
聚集索引 非聚集索引 唯一索引 复合索引
2020/11/20
6
SQL Server2005
聚集索引:将表中的记录在物理数据页中的位置 按索引字段值重新排序,再将重排后的结果写回 到磁盘上。一个表只能创建一个聚集索引 。
下列情况时可以考虑创建聚集索引:
唯一或包含许多不重复的值。 需要按顺序被访问。 需要保证列在表中的唯一性。 经常用于对表中检索到的数据进行排序。
பைடு நூலகம்
2020/11/20
11
5.2.1 使用SQL Server ManagSeQmLeSnertver2005 Studio创建索引
第一步:新建索引
第二步:设置索引信息
2020/11/20
12
SQL Server2005
5.2.2 使用Transact-SQL语句创建索引
使用Transact-SQL语句创建索引的命令是CREATE INDEX,其语法 格式如下:
2020/11/20
7
SQL Server2005
非聚集索引 :非聚集索引与表中数据行的物理存 储结构无关,因此在创建非聚集索引时不会改变 数据表中记录的物理存储顺序。每个表的非聚集 索引最多为249个。
下列情况时可以考虑创建非聚集索引:
使用 JOIN 或 GROUP BY 子句。 应为连接和分组操 作中所涉及的列创建多个非聚集索引。
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ]
INDEX index_name ON { table | view } ( column [ ASC | DESC ] [ ...n ] )
[ WITH ( <relational_index_option> [ ,...n ] ) ]
2020/11/20
15
5.4 管理索引
SQL Server2005
使用SQL Server Management Studio查看、修改 和删除索引。打开“索引/键”对话框,可以看 到当前索引的设置情况,也可以在该窗口中新建 索引、修改或删除现有索引。
[ON { partition_schema_name ( column_name ) | filegroup_name | default } ]
<relational_index_option> ::= { PAD_INDEX = { ON | OFF} | FILLFACTOR = fillfactor | DROP_EXISTING = { ON |OFF} }
SQL Server2005
第5章 索引的创建与使用
2020/11/20
1
SQL Server2005
第5章 索引的创建与使用
1 索引概述 2 创建索引 3 管理索引 4
2020/11/20
2
5.1 索引概述
SQL Server2005
在数据库中包含了一个用于对表中的记录按需排 序,从而可以优化查询的特殊对象,它就是索引。 索引是一个与表或视图相关联的磁盘结构,可以 加快从表或视图中检索行的速度。
在查询中几乎不涉及的列。 很少有唯一值的列(即包含太多重复值得列,如性别字段)。 数据类型为text、ntext或image的列。 只有较少行数的表没有必要创建索引。 当写的性能比查询更重要时,应少建或不建索引。
2020/11/20
5
SQL Server2005
5.1.2 索引的分类
SQL Server 2005 中常用的索引类型 :
据检索时,可以明显地降低查询中分组和排序的时 间
2020/11/20
4
SQL Server2005
建立索引参照以下原则:
在经常检索的列上创建索引(如经常在where子句中出现得列)。 在表的主键、外键上创建索引。 在经常用于表间连接的字段上建立索引。
一般而言,如下情况的列不考虑在其上创建索引: