大型数据库系统概论-朱辉生-第6章 Oracle9i数据库对象的管理2.pptVIP

大型数据库系统概论-朱辉生-第6章 Oracle9i数据库对象的管理2.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文档。上传文档
查看更多
第6章 Oracle9i数据库对象的管理 6.2 管理索引 6.2.1 索引的概念 虽然关系数据库表中数据行的物理位置无关紧要,但为了快速地查找到数据行,Oracle9i服务器用ROWID对表中的每一行进行标识,它指出了该行的准确位置(该行所在的文件、该文件中的块、该块中的行地址)。索引(index)是一种可以提高查询性能的数据结构,一个索引拥有表的一列或多列的值以及这些列值相对应的行地址ROWID。当Oracle9i服务器需要在表中查找某一指定行时,它在索引中查找ROWID,然后从 表中提取数据。使用索引有两个好处: n?快速查询:查询时使用索引可以帮助Oracle9i服务器以最快的速度检索数据。 n?唯一值:Oracle9i服务器会自动建立索引实施表中主键的唯一值,在保证任何其它需要唯一值的列或列组合时也可以建立索引。创建表时若指定了PRIMARY或UNIQUE约束条件子句,Oracle9i服务器会自动创建相应的索引。 使用索引也会带来这样的缺点:建立索引需要占用磁盘空间并增加了用于插入、删除和修改数据行的时间和空间的开销。插入数据行时需要在表和索引中都增加一行,修改数据行时需要在表和索引中对当前行进行修改,删除数据行需要从索引中移走当前行,这都会减慢相应操作的反应速度。 索引的类型可以从逻辑设计和物理实现两个方面进行分类。 从逻辑设计方面来看,可以把索引分为单列索引和多列复合索引、唯一索引和非唯一索引、基于函数的索引等类型。基于函数的索引是Oracle9i索引的一大特点,用户可以根据表达式、Oracle9i内部函数及PL/SQL和Java编写的函数来创建索引。创建基于函数的索引后,Oracle9i服务器会自动检查PL/SQL语句中的WHERE子句以判断是否存在匹配的索引,保证查询以最少的磁盘读写和最快的速度得到检索结果。 从物理实现方面来看,可以把索引分为B树索引、位图索引和簇索引,其中前两者是最常用的。 B树索引是建立索引时默认的索引类型,它可以是唯一或非唯一的,也可以是单列或多列复合的。B树索引的结构是一个平衡树,由根结点、树枝结点和树叶结点组成,树枝结点包含了索引列和指向下一层树枝结点的地址;树叶结点包含了索引列和表中每个匹配行的ROWID。B树索引在检索高基数数据列(可区分值不少于200个)时提供了最好的性能,可以避免大规模的排序操作。因此,B树索引一般用于OLTP系统,对于低基数数据列(可区分值少于200个)就不适合了。 位图索引可以是单列或多列复合的,但大多数基于单列。位图索引的结构实际上也是按B树组织的,但树叶块是按照每个索引列的位图(值为1或0)组织的,而不是按数据行的ROWID组织的。另外,位图以一种压缩格式存放,因此占用的磁盘空间比B树索引要小得多。位图索引一般用于决策支持系统,尤其对于低基数数据列(可区分值少于200个)特别适合。 簇索引是在簇中被表共享的索引,包括B树簇索引和哈希簇索引。簇索引不同于常规索引,它在索引中只存储一次索引值,而不管索引列值在表中重复多少次。簇索引一般用于在簇上执行数据操作的场合。 6.2.2 创建索引:有两种方式: 1.使用Oracle企业管理器创建索引 ⑴ 启动Oracle企业管理器,以system身份连接数据库,展开“方案”→“SYSTEM”节点,右击“索引”,从快捷菜单中单击“创建”即弹出如图6.18所示的“创建索引”对话框。 ⑵ “创建索引”对话框包含了四个选项卡: n? “一般信息”选项卡,如图6.18所示。该选项卡可以在表或簇的一列或多列上定义索引。 u “名称”文本框:输入新建索引的名称,索引名在数据库中的同一方案中是唯一的。本例名为SNAME_INDEX。 u“方案”下拉列表框:含义同创建表。本例取默认值(SYSTEM)。 u“表空间”下拉列表框:含义同创建表。本例取默认值(Default)。 u “索引建于”单选按钮:分“表”和“簇”两种方式,前者将索引置于表中;后者将索引创建在簇中。本例取默认值(表)。 u“方案”下拉列表框:显示索引所属的可用方案。本例取默认值(SYSTEM)。 u“表”下拉列表框:显示所有属于所选方案的可用表。本例取STUDENT。 本选项卡下面的列表框中包含了3个列: u“表列”:从作为索引依据的表中提取的列名。 u“数据类型”:显示提取各列的数据类型。 u“次序”:为索引所选的列的次序。 本选项卡下面还有四个选项: u“唯一”:若选中该复选框,表示指定表中将被索引的列或列组合的值必须唯一。 u“位图”:若选中该复选框,表示指定创建位图索引。 u“未排序”:若选中

您可能关注的文档

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档