欢迎来到天天文库
浏览记录
ID:59197582
大小:299.00 KB
页数:32页
时间:2020-09-26
《第10章实现SQL Server 数据库ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章实现索引10.1索引概述10.2创建索引10.3查看、修改和删除索引10.4本章总结学习目的:通过本章学习,你能够学到:索引的基本概念、作用、特点及分类。使用企业管理器和T-SQL语句创建索引。使用企业管理器和T-SQL语句查看、修改和删除索引。10.1索引概述一、索引的概念数据库中的索引与书籍中的索引类似,在一本书中,利用索引可以快速查找所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。书中的索引是一个词语列表,其中注明了包含各个词的页码。
2、而数据库中的索引是某个表中一列或者若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。二、索引的作用那么索引到底有什么作用呢?通过创建唯一索引,可以保证数据记录的唯一性;可以大大加快数据检索速度;可以加速表与表之间的连接,这一点在实现数据的参照完整性方面有特别的意义;在使用ORDERBY和GROUPBY子句中进行检索数据时,可以显著减少查询中分组和排序的时间;使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能。三、索引的特点优点:索引可以加快数据库的检索速度。索引降低了数据库插
3、入、修改、删除等维护任务的速度。索引创建在表上,不能创建在视图上。索引既可以直接创建,也可以间接创建。可以在优化隐藏中,使用索引。使用查询处理器执行SQL语句,在一个表上,一次只能使用一个索引。当然,由索引给我们带来的优势的同时,它也存在缺点:创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护
4、速度。那么到底在什么情况下适合使用索引呢?可归纳为以下几点:(1)经常被查询搜索的列,如经常在where子句中出现的列。(2)在ORDERBY子句中使用的列。(3)是外键或主键的列。(4)该列的值唯一的列。四、索引的分类SQLServer提供了两种形式的索引,一种是聚集索引,另一种是非聚集索引两类。聚集索引对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上,即聚集索引与数据是混为一体的,它的叶节点中存储的是实际的数据。非聚集索引具有完全独立于数据行的结构,使用非聚集索引不用将物理数据页中的数
5、据按列排序。非聚集索引的叶节点存储了组成非聚集索引的关键字值和行定位器。10.2创建索引SQLServer2000创建索引的方法可以归纳为如下几种:(1)利用企业管理器直接创建索引。(2)利用Transact-SQL语句中的CREATEINDEX命令创建索引。(3)利用企业管理器中的索引向导创建索引。1.利用企业管理器直接创建索引。[实例10.1]在pubs数据库中的employee表上建立“emp_id”的唯一聚簇索引名为“员工号_INDX”,该索引以升序排列,索引储存在文件组PRIMARY中。(1
6、)启动企业管理器,展开指定的“服务器”节点。(2)展开“数据库”节点(3)选中“pubs”数据库中的“表”选项。(4)在右边窗口中选中表“employee”单击右键,从弹出的菜单中选择“所有任务”,从级联菜单中选择“管理索引”则系统弹出如图10.1所示的对话框。图10.1管理索引(5)在管理索引对话框中选定数据库和表,然后单击“新建”按钮,弹出如图10.2所示的对话框。图10.2新建索引(6)在索引名称中键入索引名,选中建立索引的列“emp_id”,排序次序如若选中则为降序排列,如不选则默认为升序排列
7、。(7)在索引选项中,选中“聚集索引”、“唯一值”和“文件组”三个复选框。(8)然后单击“确定”按钮返回到管理索引的对话框,此时该对话框中的“现有索引”文本框中将显示刚刚建立的索引。2.利用Transact-SQL语句中的CREATEINDEX命令创建索引。[实例10.2]在学生库中的学生信息表上建立“学号”的唯一聚簇索引名为“学号_INDX”,该索引以降序排列。图3.6(1)启动查询分析器,输入如下SQL语句:USE学生库GOCREATEUNIQUECLUSTEREDINDEX学号_INDXON学生
8、信息(学号desc)GO(2)按“F5”键或单击工具栏“执行查询”图标执行。执行结果如图10.3所示。图10.3利用Transact-SQL语句创建索引使用T-SQL语句创建索引的命令格式:其语法形式如下:CREATE[UNIQUE][CLUSTERED
9、NONCLUSTERED]INDEX索引名ON{表名
10、视图名}(列名[ASC
11、DESC][,...n])命令说明:CREATEINDEX命令创建索引各参数说明如下:UNIQUE:用于指定为表或视图创建唯
此文档下载收益归作者所有