oracle index学习总结.doc

上传人:一*** 文档编号:12571606 上传时间:2022-04-25 格式:DOC 页数:4 大小:15KB
返回 下载 相关 举报
oracle index学习总结.doc_第1页
第1页 / 共4页
oracle index学习总结.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《oracle index学习总结.doc》由会员分享,可在线阅读,更多相关《oracle index学习总结.doc(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、oracle index学习总结oracle index学习总结oracleindex1.index需要储存空间和I/O操作。2.index的目的是加快select的速度的。3.insert,update,delete数据oracle会同时对索引进行相应的调整,因此会增加一定的消耗。4.使用index一定能加快select速度吗?不是的,数据少和巨大时index会影响select的速度,因此如果查询速度可以满足,就不要建index。5Index对null无效。分类:一、从物理角度1.partitionedornonpartitioned:分区或不分区索引。分区索引用于分区表。2.B-tree(

2、平衡树):normalorreversekey正常和倒序索引。oracle默认索引方式,平衡树形索引,在叶子节点上有双向链表,加快索引定位速度,oracle有一定的优化,可以根据链表直接定位记录,而不走树,综合使用提高速度。见图1和图2。图1图3.bitmap(位图):用二进制的0、1来构建索引,在进行or操作时非常快,但要注意bitmap对于并发操作时,改一条会锁了很多记录,因为所有的记录在一个索引条目上,所以修改或增加时会一起锁定,见图3.图区别和使用场景B-tree索引Bitmap索引Suitableforhigh-cardinalitySuitableforlow-cardinalit

3、ycolumns(用在记录相同的columns(记录对应的列重复值较多的列上,如果性别只有两种值:男和女)。的值较少,如主键,姓名等)。UpdatesonkeysrelativelyUpdatestokeycolumnsveryexpensiveinexpensive(在做updated(在做updated时,bitmap的消耗是昂贵的)。时,b-tree只消耗很少的资源)。InefficientforqueriesusingEffcientforqueriesusingORpredicatesORpredicates(where子句中(where子句中or条件较多时速度非常快)or条件较多时

4、速度较慢)UsefulforOLTP(记录频繁的Usefulfordatawarehousing(OLIP)数据仓库,查insert和update,查询相对较少询系统等较少做数据修改的系统。的系统)。二、逻辑角度:1.singlecolumnorconcatenated单索引和组合索引。2.uniqueornonunique:唯一索引和非唯一索引。3.function-based:基于函数的索引,把一些where条件作为函数。4.domain:数据库以外的索引,如文件等。三、创建index时的注意事项:1.balancequeryandDMLneeds:索引的目的是为了提高查询速度,但它会加重

5、DML的负担。2.placeinseparatetablespace:索引和表应该放在不同的表空间,如果把索引和表放在同一个空间,会引起竞争,因为在读取一个表时,记录和索引是同时读取,修改也同步进行的。3.useuniformextentsizes:Multipesoffiveblocksorminimumextentsizefortablespace.索引空间是extent是大小应该是5blocks的倍数,因为oracle是一次读出5个blocks,如果你的extends是6,就会造成2次I/O操作。4.considernologgingforlargeindexes:在创建索引时可以关闭索

6、引对应的redo日志,提高速度,因为索引和数据不同,如果索引创建时出意外,数据还在,就再创建一次好了。5.INITRANSshouldgenerallybehigheronindexesthanonthecorrespondingtables:INITRANS参数比对应的表的值大些,因为索引也是已表记录的方式保存的,但索引大大小于表的记录,所以一个block中存储的索引记录就大大多于表在一个block中的记录,加大INITRANS可以增加在一个block中的事务的并发数,就提高了效率。6.rebuildingindexes:如果删除一条记录,对应的索引仅仅是做了逻辑删除,只有一个block中的

7、全部索引都被标识为逻辑删除,orcle才会真正的回收block,这时这个block才能被再次利用,在表的记录做update时,index是先做了逻辑删除,然后再为该记录新建一个索引的,所以表在频繁的增删改后,就会造成index对应的block不完整,和系统碎片的情况是一致的,造成空间浪费,加大index的I/O,影响性能。而rebuildingindexes就可以回收原来的,重新构建一个高效的索引,但重构时会锁表。语法:alterindexindex_namerebuild;7coalescingindexes:整理索引碎片,效率高,不锁表。语法:Alterindexindex_namecoa

8、lesce;四管理索引1.分析索引:1)select*fromuser_objectswhereobject_type=INDEX2)analyzeindexPK_T_TICKETvalidatestructure;3)select*fromindex_stats;HEIGHT(b-treeBLOCKS(索引NAME(索引LF_ROWS(记DEL_LF_ROWS的高度)有多少块)名)录数)(删除记录数)2256PK_T_TICKET82775792当DEL_LF_ROWS/LF_ROWS15%时应进行索引重建或索引碎片整理。2.drop索引:当屁量导入大量数据时,索引会影响导入速度。可以现在d

9、rop掉,导入后再重建索引。3.监控索引:1)设置监控那个索引alterindexpk_t_ticketmonitoringusage;2)查看该索引用没有使用select*fromv$object_usage3)selectcount(1)frompk_t_ticket;4)查看该索引用没有使用select*fromv$object_usage5)关闭监控alterindexpk_t_ticketnomonitoringusage;监控一个月就大概可以知道那些是无用的索引了。6)查询索引的详细信息:select*fromall_ind_columnswhereindex_name=PK_T_TICKET.那个表的那个列上有索引及详细信息。扩展阅读:第 4 页 共 4 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 汇报体会

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com