数据库索引优化.pptx
《数据库索引优化.pptx》由会员分享,可在线阅读,更多相关《数据库索引优化.pptx(45页珍藏版)》请在第壹文秘上搜索。
1、目录索引简介测试使用的相关方法对单列索引进行的简单测试对多列索引进行的测试相关的数据字典对表进行分析导致索引失效的原因索引简介索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合及相应的指向表中物理的标识这些值的数据页的逻辑指针清单。通过使用索引,可以降低I/O次数,提高数据库访问性能。Oracle索引分类Oracle数据库的索引种类很多,包括B树索引、基于位图的索引、以及基于函数的索引等等。以下只测试都是基于B树索引。B树索引结构与二叉树类似,根据索引码提供对单个行或一系列行的快速访问,通常需要很少的读取就能找到正确的行。在树中,最底层的块称为叶节点,包含每个索引码和指向正在
2、索引的行的行ID,在叶节点上面的中间快,被称为分支块,用来导航结构。B树索引示意图=50 71 rowID72 rowID73 rowID74 rowID 40.5030.4020.3010.20 80.9070.8060.7050.6021 rowID22 rowID23 rowID24 rowID25 rowID 41 rowID42 rowID43 rowID44 rowID 建立B树索引建立简单的B树索引 create index index_name on table_name (col1,col2,);修改索引为不可用 alter index index_name unusable
3、 重建索引 alter index index_name rebuild删除索引 drop index index_name测试相关使用SQL*PLUS的Autotrace功能 显示执行计划和统计信息: set autotrace on 打开 set autotrace off 关闭 set autotrace traceonly 不输出执行结果 执行计划统计信息测试时间的计算清空缓存数据存储在数据缓存区中的数据会导致测试的时间不准确。清空数据缓存使用alter system flush buffer_cache简单的测试建表 create table tbxx01 ( xxno number
4、 not null, xxage number, xxa number, xxb number, xxc number, primary key (xxno) )简单的测试向TBXX01表插入10000笔数据,测试同一个查询语句在使用索引和不使用索引的情况下的执行时间。默认情况下,Oracle系统会在主键上自动建立索引。select * from tbxx01 where xxno=10000;简单的测试-1万笔记录简单的测试-增加到5万笔记录单列索引测试测试表记录总数为100万条。单列索引测试(无索引)执行select * from tbxx05 where 查询条件查询条件执行时间(毫秒)
5、执行时间(毫秒)xxnum=100 1312xxnum=10001328xxnum=10000 1375xxnum=1000002234xxnum=5000005750 xxnum=8000008328xxnum=1000000 10187Select * from tbxx0510938单列索引测试(使用索引)执行select * from tbxx05 where.查询条件查询条件执行时间(毫秒)执行时间(毫秒)xxnum=100 78xxnum=1000125xxnum=10000 344xxnum=1000001969xxnum=5000008125xxnum=8000008953xx
6、num=1000000 10172Select * from tbxx0510110返回记录数占总数的比例返回记录数占总数的比例无索引的执行时间(毫秒)无索引的执行时间(毫秒)使用索引的执行时间(毫使用索引的执行时间(毫秒)秒)1/100001312(全表扫描)781/10001328(全表扫描)1251/1001375(全表扫描)3441/102234(全表扫描)19691/25750(全表扫描)81254/58328(全表扫描)8953(全表扫描)1/110187(全表扫描)10172(全表扫描)1/110938(全表扫描)10110(全表扫描)单列索引测试单列索引测试小结从前表可以看出当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 索引 优化
