- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ORACLE索引管理创新
第10章 ORACLE索引管理;提升数据库性能最常用最有效的手段
针对不同的环境使用不同的索引来提升系统性能
认识索引的正面与反面影响
灵活的索引管理便于我们在实际工作中解决实际问题;通过本节课程的学习,我们应该掌握以下内容:
掌握索引的不同类型与用途
创建不同类型的索引
重新组织索引
删除索引
获取索引信息
监控索引的使用;B树索引
普通索引
函数索引
位图索引
;B树索引;位图索引;B树索引:用于OLTP系统,列值的唯一性比较高:身份证编号
位图索引:用于OLAP系统(数据仓库),列值的唯一性比较低:民族
B树索引与位图索引的根本区别在执行DML时锁定的行数不同, B树索引锁定一行,位图索引锁定一组数据。
实际测试B树索引与位图索引不同锁机制;索引 SQL语句中的 Where 条件列
平衡查询与数据更新的需要
将索引与表放在不同的表空间中,避免争用
针对大的索引考虑NOLOGGING选项
alter index idx_test001_obid nologging;
创建大型索引过程中由于需要排序,需要设置合适大小的PGA与临时表空间
创建大型索引时注意online参数的使用避免锁表以及数据,创建索引与DML相互进行锁定
在创建大型索引时注意放入后台进程执行,避免窗口中断造成创建索引中断;create index employees_last_name_idx
on employees(last_name)
pctfree 30
tablespace indx;;实际案例: 大表创建索引;创建一张包含50W行记录的表
使用online参数
在创建索引过程中,向正在创建索引的表中插入记录,观察是否存在等待现象
不使用online参数
在创建索引过程中,向正在创建索引的表中插入记录,观察是否存在等待现象
参考命令
create index employees_last_name_idx
on employees(last_name) online;
;使用create_bitmap_area_size参数为创建位图索引分配内存以提升创建速度
create bitmap index idx_emp_deptno
on emp (deptno)
online nologging tablespace users;
修改EMP表deptno列与其他列效果比较
查看会话阻塞信息t.sid为被阻塞sid,t.BLOCKING_SESSION为阻塞sid
select t.sid,t.USERNAME,t.BLOCKING_SESSION_STATUS,t.BLOCKING_SESSION from v$session t where t.BLOCKING_SESSION_STATUS=VALID;实际案例:位图索引对OLTP的影响;适用于where条件后通过函数计算的列,如下所示:
select count(*) from test001 where substr(object_name,1,3)=‘CON’;
创建函数索引
create index idx_test001_obname_func on test001(substr(object_name,1,3)) tablespace tbs_indexes;
上述select语句不能利用普通索引,但可利用此函数索引。;单列索引
create index IDX_TEST001_OBID on TEST001 (OBJECT_ID);
create index IDX_TEST001_OBNAME on TEST001 (OBJECT_NAME);
复合索引
create index IDX_TEST001_OBNAMEID on TEST001 (OBJECT_ID, OBJECT_NAME);
针对的SQL语句:
select count(*) from test001 where object_id=10001 and object_name=CON$‘;
当只有上述单列索引时此SQL语句将分别从两个索引检索数据并取交集获得最终数据
当创建上述复合索引后此SQL语句直接从复合索引中读取数据,此性能高于前面的利用两个单列索引进行查询;当删除表中数据时,索引中的数据块也会被删除,造成空闲空间,类似表的高水位问题,影响IO性能
使用alter index。。。rebuild命令进行重新组织
移动索引到新的表空间
回收删除数据所占用的空间提升空间利用率与性能
分析并查询索引结构
SQLanalyze index ------ validate structure; -分析索引结构SQLalter index ... compute stat
您可能关注的文档
最近下载
- 盘扣式脚手架施工方案.docx VIP
- 湖北省荆州市监利市 2023-2024学年七年级上学期期中考试道德与法治试题.docx VIP
- 《MTBE及1-丁烯生产技术》.pdf VIP
- 高中英语3500词【打印版】乱序版3500词汇(带音标120页).pdf VIP
- 数据价值转化加速,高质量数据集赋能AI【25页 PPT】.pptx VIP
- 招聘启事范本 .pdf VIP
- 初中七年级(上)第一次月考语文试卷含答案.docx VIP
- 建筑工程图集 96K150-2 圆伞形风帽.pdf VIP
- 高质量数据集建设实施路径(34页 PPT).pptx VIP
- 2024年文山州麻栗坡县县级卫生健康单位选调真题.docx VIP
原创力文档


文档评论(0)