1 / 23
文档名称:

数据库实验5.pptx

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

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

分享

预览

数据库实验5.pptx

上传人:精品小课件 2021/2/5 文件大小:157 KB

下载得到文件列表

数据库实验5.pptx

文档介绍

文档介绍:实验 5 索引和优化
1
创建索引
(1)利用Transact-SQL语句中的CREATE INDEX命令创建索引。
语法格式:
CREATE [UNIQUE] [CLUSTERED| NONCLUSTERED ]
INDEX 索引名
ON 数据表名|视图名( 字段名 [ ASC | DESC ] [ ,...n ] )
[WITH
[PAD_INDEX]
[[,]FILLFACTOR=填充因子]
[[,]IGNORE_DUP_KEY]
[[,]DROP_EXISTING]
[[,]STATISTICS_NORECOMPUTE]
[[,]SORT_IN_TEMPDB]]
[ ON 文件组名]
2
CREATE INDEX命令
参数说明:
(1)UNIQUE:用于指定为表或视图创建唯一索引,即不允许存在索引值相同的两行。
(2)CLUSTERED:用于指定创建的索引为聚集索引。
(3)NONCLUSTERED:用于指定创建的索引为非聚集索引。
(4)ASC|DESC:用于指定具体某个索引列的升序或降序排序方向。
(5)PAD_INDEX:用于指定索引中间级中每个页(节点)上保持开放的空间。必须和填充因子同时使用。
(6)FILLFACTOR =填充因子:用于指定在创建索引时,每个索引页的数据占索引页大小的百分比,fillfactor的值为1到100。
3
4
CREATE INDEX命令
参数说明:
(7)IGNORE_DUP_KEY:用于控制当往包含于一个唯一聚集索引中的列中插入重复数据时SQL Server所作的反应。当使用该选项,表示当插入或更新记录时,忽略重复键值。
(8)DROP_EXISTING:用于指定应删除并重新创建已命名的先前存在的聚集索引或者非聚集索引。
(9)STATISTICS_NORECOMPUTE:用于指定过期的索引统计不会自动重新计算。
(10)SORT_IN_TEMPDB:用于指定创建索引时的中间排序结果将存储在 tempdb 数据库中。
4
5
1、利用对象资源管理器直接创建索引
例1 为数据库“教学管理”,。
操作步骤如下:
① 在对象资源管理器中,展开“教学管理”数据库,选择数据表学生表节点单击右键,在快捷菜单中选择“修改”。
② 在设计器窗口中单击右键,在快捷菜单中选择“索引/键”,则出现新建索引对话框。
③单击“添加”按钮,系统自动给出新索引名(可以在“标识”里重新命名),然后再在“常规”中选择要索引的列“姓名”。
④单击【关闭】按纽,索引创建完毕。创建过程如下图所示。
5
6
6
7
2、利用SQL中的CREATE INDEX命令创建索引
USE 教学管理
GO
CREATE UNIQUE CLUSTERED INDEX IX_学号 ON 学生表(学号)
WITH (pad_index=ON,fillfactor=100)
,索引名为IX_学号,填充因子为100。
如果学生表表已经有聚集索引,则会出现下列错误信息:
服务器:消息1902,级别16,状态3,行 1
不能在表'学生表'上创建多个聚集索引。请在创建新聚集索引前除去现有的聚集索引 'PK_学生表'。
7
8
例2 为数据库“教学管理”。
方法一:使用对象资源管理器
创建过程请参照上例,见上图创建索引窗口。
方法二:使用SQL命令
USE 教学管理
GO
CREATE UNIQUE INDEX IX_课程表_课名 ON 课程表(课名 DESC)
8
9
例3 为数据库“教学管理”。
方法一:使用对象资源管理器
创建过程请参照上例,见前图创建索引窗口。
方法二:使用SQL命令
USE 教学管理
GO
CREATE INDEX IX_教师表_姓名 ON 教师表 (姓名 ASC)
9
10
例4 为数据库“教学管理”,,填充因子为90,在插入数据时,可以忽略重复的值。如果已经存在IX_学号_开课号索引,则先删除后重建。
USE 教学管理
GO
CREATE UNIQUE INDEX IX_学号_开课号 ON 选课表(学号 DESC,开课号 ASC)
W