第5章 索引和 与数据完整性 Oracle实用教程(第3版)PPT.pptVIP

第5章 索引和 与数据完整性 Oracle实用教程(第3版)PPT.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 索引和 与数据完整性 Oracle实用教程(第3版)PPT.ppt

5.1 索引 5.2 数据完整性 在Oracle 11g中,索引是一种供服务器在表中快速查找一行的数据库结构。在数据库中建立索引主要有以下作用: (1)快速存取数据; (2)既可以改善数据库性能,又可以保证列值的唯一性; (3)实现表与表之间的参照完整性; (4)在使用ORDER BY、GROUP BY子句进行数据检索时,利用索引可以减少排序和分组的时间。 (1)索引按存储方法分类,可以分为两类:B*树索引和位图索引。 B*树索引的存储结构类似图书的索引结构,有分支和叶两种类型的存储数据块,分支块相当于图书的大目录,叶块相当于索引到的具体的书页。Oracle用B*树(B*-tree)机制存储索引条目,以保证用最短路径访问键值。 (2)索引按功能和索引对象可分为以下六种类型。 ① 唯一索引。唯一索引意味着不会有两行记录相同的索引键值。唯一索引表中的记录没有RowID,所以不能再对其建立其他索引。 ② 非唯一索引。不对索引列的值进行唯一性限制的称为非唯一索引。 ③ 分区索引。所谓分区索引是指索引可以分散地存在于多个不同的表空间中,其优点是可以提高数据查询的效率。 ④ 未排序索引。未排序索引也称为正向索引。由于Oracle 11g数据库中的行是按升序排序的,因此创建索引时不必指定对其排序而使用默认的顺序。 ⑤ 逆序索引。逆序索引也称为反向索引。该索引同样保持索引列按顺序排列,但是颠倒已索引的每列的字节。 ⑥ 基于函数的索引。基于函数的索引是指索引中的一列或者多列是一个函数或者表达式,索引根据函数或者表达式计算索引列的值。 5.1.2 使用索引的原则 (1)在表中插入数据后创建索引。在表中插入数据后,创建索引效率将更高。因为如果在装载数据之前创建索引,那么插入每行时Oracle都必须更改索引。 (2)索引正确的表和列。如果经常检索的内容仅为包含大量数据的表中少于15%的行,就需要创建索引。为了改善多个表的相互关系,常常使用索引列进行关系连接。 (3)合理安排索引列。在CREATE INDEX语句中,列的排序会影响查询的性能,通常将最常用的列放在前面。创建一个索引来提高多列查询时,应该清楚地了解这个多列索引对什么列的存取有效、对什么列的存取无效。 例如,当在A、B、C三列上创建索引时,实际得到的顺序如下: A AB ABC 所以,可以获得A列的索引、A和B列结合的索引以及A、B、C三列结合的索引。不能得到的顺序如下: B BC C 5.1.2 使用索引的原则 (4)限制表中索引的数量。尽管表可以有任意数量的索引,可是索引越多,在修改表中的数据时对索引做出相应更改的工作量也越大,效率也就越低。 (5)指定索引数据块空间。创建索引时,索引的数据块是用表中现存的值填充的,直到达到PCTREE为止。 (6)根据索引大小设置存储参数。创建索引之前应先估计索引的大小,以便更好地规划和管理磁盘空间。单个索引项的最大值大约是数据块大小的一半。 5.1.3 创建索引 (3)“选项”选项页面。“选项”选项页面如图5.3所示。在该页面中可以指定如何执行并行查询、如何存储重做日志等信息。 5.1.3 创建索引 (4)“分区”选项页面。“分区”选项页面如图5.4所示。在“分区”选项页面中可以按照索引对表进行分区。 5.1.3 创建索引 2.在SQL Developer中创建索引 以在XSB表的姓名列创建索引为例,使用SQL Developer创建索引的操作过程如下。 (1)启动SQL Developer,展开连接system_ora,右击要创建索引的表XSB,选择“Index”菜单下的“Create Index”子菜单项,如图5.5所示。 (2)在弹出的Create Index窗口中创建索引,如图5.6所示。 5.1.3 创建索引 3.使用SQL命令创建索引 使用SQL命令可以灵活方便地创建索引。在使用SQL命令创建索引时,必须满足下列条件之一。 ? 索引的表或簇必须在自己的模式中。 ? 必须在要索引的表上具有INDEX权限。 ? 必须具有CREATE ANY INDEX权限。 语法格式: CREATE [UNIQUE∣BITMAP] INDEX /*索引类型*/ [schema.]index_name /*索引名称*/ ON [schema.]table_name(column_name | column_expression [ASC∣DESC] [,…n]) [LOGGING | NOLOGGING] /*指定是否创建相应的日志记录*/ [COMPUTE STATISTICS] /*生成统计信息*/ [COMPAESS | NOCOMPRE

您可能关注的文档

文档评论(0)

youngyu0329 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档