您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle数据库 10jsp
第十章索引重点内容:创建索引。学时:1-2课时。2019/8/1HANMENG20102本章内容1.索引概述2.B树索引与位图索引3.创建索引4.删除索引5.查看索引2019/8/1HANMENG201031、索引概述索引是为了加速对表中元组的检索而创建的一种存储结构。通过使用索引加速行的检索,但减慢更新的速度。更新表中每条数据时都需要更新索引。Oracle自动使用、维护索引。2019/8/1HANMENG20104编号颜色数量尺寸001绿3000中002红5000中003红6000小….…...…编号Rowid001002003…图1表和索引的关系2019/8/1HANMENG201052、B树索引与位图索引B树索引,即平衡树索引,是最常用的索引方式,结构类似于二叉树。关键点:索引条目和数据行之间存在一一对应关系,即一条索引条目指向一行。位图索引,适用于数据高度重复并且通常只读的数据。关键点:一个索引条目使用一个位图同时指向多行。2019/8/1HANMENG201061000101010001005101010151000ROWID1001ROWID1002ROWID1003ROWID1004ROWID1005ROWID1006ROWID1007ROWID1008ROWID1009ROWID1010ROWID1011ROWID1012ROWID1013ROWID1014ROWID1015ROWID1016ROWID1017ROWID1018ROWID1019ROWID图2B树索引的逻辑结构如何查找编号为1016的节点?2019/8/1HANMENG20107B树索引的特点:1.树的高度一般在2或3。2.叶子节点中,每条索引目录指向某一行数据。2019/8/1HANMENG20108如何在emp表的job列创建一个位图索引?值/行1234567891011121314ANALYST00000001010010CLERK10000000001101MANAGER00010110000000PTRSIDENT00000000010000SALESMAN01101000000000表1位图索引问题:selectcount(*)fromempwherejob=‘CLERK’orjob=‘MANAGER’;怎么找到结果?2019/8/1HANMENG201093、管理索引索引使用原则:表中导入数据后再创建索引。否则每次表中插入数据时都必须更新索引。在适当的表和字段上创建索引。如果经常检索的数据少于表中的15%则需要创建索引。限制表中索引的数目。索引越多,在修改表时对索引做出的而修改的工作量越大。2019/8/1HANMENG201010eg:比较创建索引前后系统的开销。SQLsetautotraceonexplain---查询系统的开销,不显示查询结果。SQLselectenamefromempwhereename='SMITH';|Id|Rows|Bytes|Cost(%CPU)|Time|--------------------------------------------------------------|0|1|7|3(0)|00:00:01||Id|Rows|Bytes|Cost(%CPU)|Time|--------------------------------------------------------------|0|1|7|1(0)|00:00:01|SQLcreateindexidx_emponemp(ename);SQLselectenamefromempwhereename='SMITH';2019/8/1HANMENG201011语法规则:CREATE[UNIQUE][BITMAP]INDEX索引名ON表名(列名…);(1)创建索引eg:SQLcreateindexidx_emponemp(ename);2019/8/1HANMENG201012其中:UNIQUE表示建立唯一性索引,基于的列值必须唯一。BITMAP表示建立位图索引。ASC/DESC升序或降序。默认升序。2019/8/1HANMENG201013(2)删除索引当索引不需要使用时,删除该索引,释放其占用的空间。语法格式:DROPINDEXindex_nameeg:SQLdropindexidx_emp;2019/8/1HANMENG201014ALL_INDEXES:用户可以访问的所有表上的索引。USER_INDEXES:用户所拥有表上的索引。(3)查询索引信息INDEX_NAMEINDEX_TYPEUNIQUENES-----------------------------------------------------------PK_EMPNORMALUNIQUEeg:查询emp表中索引名称,类型和是否唯一性索引。SQLselectindex_name,index_type,uniquenessfromuser_indexeswheretable_name='EMP';
本文标题:Oracle数据库 10jsp
链接地址:https://www.777doc.com/doc-12130 .html