- 1、本文档共84页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[所有分类]第5章索引与数据完整性
第5章 索引与数据完整性 5.1 索引操作 5.2 约束 5.3 触发器 5.1 索引操作 5.1.1 创建索引 5.1.2 查看、修改和删除索引 是否创建索引 创建索引不是必须的,先讨论为什么要创建索引 为何创建索引------加快对数据的访问,增强行的唯一性. 为何不创建索引------会消耗硬盘的空间,引起开销. 一、什么叫索引 数据库中的索引与书籍中的索引类似,在一本书中,利用索引可以快速查找所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。书中的索引是一个词语列表,其中注明了包含各个词的页码。而数据库中的索引是某个表中一列或者若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。 二、索引的作用 通过创建唯一索引,可以保证数据记录的唯一性。 可以大大加快数据检索速度。 可以加速表与表之间的连接,这一点在实现数据的参照完整性方面有特别的意义。 在使用ORDER BY和GROUP BY子句中进行检索数据时,可以显著减少查询中分组和排序的时间。 使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能。 聚集索引与非聚集索引 聚集索引对表的物理数据页中的数据按列进行排序,即进行物理排序,所以这种索引对查询非常有效. 表和视图中只能有一个聚集索引,并且必须先为视图创建惟一聚集索引,然后才能创建非聚集索引.实际应用中一般为定义成主键约束的列建立聚集索引 非聚集索引具有完全独立于数据行的结构,使用非聚集索引不会对表和视图进行物理排序. 表和视图中,最多可建立250个非聚集索引或者249个非聚集索引和1个聚集索引. 5.1.1 创建索引 SQL Server 2000创建索引的方法 (1)利用对象资源管理器中的索引向导创建索引。 (2)利用SQL语句中的CREATE INDEX命令创建索引。 3. 利用Transact-SQL语句中的CREATE INDEX命令创建索引(第90页) 其语法形式如下: CREATE [UNIQUE] [CLUSTERED| NONCLUSTERED ] INDEX index_name ON { table | view } ( column [ ASC | DESC ] [ ,...n ] ) 注意 默认非惟一非聚集索引 unique基于的列值必惟一 可以创建基于至少两列的复合索引 表 的索引创建(30分钟左右) 视图之上索引 的创建(15分钟),两点事项: 必须包含WITH SCHEMABINDING子句; 必须先创建惟一 聚集索引而后再建非聚集索引。 例子 为表employees创建了一个唯一聚集索引,其程序清单如下: CREATE UNIQUE CLUSTERED INDEX number_ind ON employees (number) 例子 为表employees创建了一个复合索引,其程序清单如下: create index employees_cpl_ind on employees(name,age) 5.1.2 查看、修改和删除索引 1. 利用对象资源管理器查看、修改和删除索引 要查看和修改索引的详细信息,可以在对象资源管理器中,展开指定的服务器和数据库项,用右键单击要查看的表,从弹出的快捷菜单中选择所有任务子菜单中的“管理索引”选项,则会出现管理索引对话框。选择要查看或者修改的索引,单击“编辑”按钮,就会出现修改索引对话框。在该对话框中,可以修改索引的大部分设置,还可以直接修改其SQL脚本,只需按下“编辑SQL…”按钮,即可出现编辑SQL脚本对话框,其中可以编辑、测试和运行索引的SQL脚本。 要删除索引,可以在对象资源管理器中,从管理索引对话框中或者表的属性对话框中,选择要删除的索引,单击“删除”按钮,即可删除索引。 2. 用系统存储过程查看和更改索引名称 系统存储过程sp_helpindex可以返回表的所有索引信息,其语法形式如下: sp_helpindex [@objname=]’name’ 其中[@objname=]’name’参数用于指定当前数据库中的表的名称。 另外,系统存储过程sp_rename可以用来更改索引的名称,其语法形式如下: sp_rename[@objname=]object_name,[@newname=]new_name????[ , [ @objtype = ] object_type ] 例子 更改employees表中的索引employees_name_index名称为employees_name_ind,其程序清单如下: Exec sp_rename ‘employees.[employees
您可能关注的文档
最近下载
- 《重庆市高速公路施工标准化指南》(CQJTG∕T E02-2021)(渝交科〔2021〕17)号.pdf
- DB32T 4865-2024 公路水运工程工地试验室仪器设备管理规范.docx VIP
- 后盖径向孔钻模钻床夹具设计说明书不含图纸.doc
- 矿区钻探工程施工方案及保障措施.docx
- 0051艺术鉴赏与评论.ppt VIP
- 五年级上册数学图形的旋转︳青岛版(共25张)2.pptx
- 2024年广东省普通高中学业水平合格性考试化学试卷.docx VIP
- 2025年厨师职业技能鉴定高级试卷:西式糕点制作高级案例分析试题.docx VIP
- 河南大学《钢结构》期末考试试卷(含答案).pdf
- 二年级上册心理健康课件-第五课 我来听你说|辽大版 .pptx VIP
文档评论(0)