全面解析11GR2中的BTree索引(含视频)
2013-11-07 12:12
239 查看
案例讨论 数据泵日常应用
http://www.itpub.net/thread-1821915-1-1.html
本文的目录如下:
第01部分-(t1表) 判断用哪个列建立索引——列的选择度是选择索引列的依据之一
第02部分-(t1表) 建索引之前测试新索引将对查询计划有何影响——虚拟索引(nosegment index)
第03部分-(t1表) 普通B树索引
第04部分-(t1表) 唯一索引
第05部分-(t1表) 反转键索引
第06部分-(t1表) 复合索引(也叫级联索引)
第07部分-(t2表) 函数索引
第08部分-(d表+e表) 簇索引
第09部分-(t1_part表) 本地分区索引(较全局索引,更易维护最流行)
第10部分-(t3表) 键压缩索引
第11部分-补充: 索引的基本维护命令
http://www.itpub.net/thread-1821915-1-1.html
本文的目录如下:
第01部分-(t1表) 判断用哪个列建立索引——列的选择度是选择索引列的依据之一
第02部分-(t1表) 建索引之前测试新索引将对查询计划有何影响——虚拟索引(nosegment index)
第03部分-(t1表) 普通B树索引
第04部分-(t1表) 唯一索引
第05部分-(t1表) 反转键索引
第06部分-(t1表) 复合索引(也叫级联索引)
第07部分-(t2表) 函数索引
第08部分-(d表+e表) 簇索引
第09部分-(t1_part表) 本地分区索引(较全局索引,更易维护最流行)
第10部分-(t3表) 键压缩索引
第11部分-补充: 索引的基本维护命令
第01部分-(t1表)判断用哪个列建立索引——列的选择度是选择索引列的依据之一
本帖最后由 zcs0237 于 2013-7-30 20:22 编辑 01.01-在创建索引前:手工评估列的选择性 -选择度=(不同值的数目÷行的总数)=索引列有9k不同值÷表记录有1w条=0.9。 -索引的选择性越接近于1,这个索引的效率就越高。 -CBO一般不会使用选择性不好的索引。 -常用于频繁搜索条件的列选择可作为建立索引的列 -常用于对数据排序顺序的列可作为建立索引的列。 一、准备工作:创建测试表、插入1百万条以上记录 SYS@zcs11g> set sqlprompt "_user'@zcs'11g> " set timing off set autotrace off drop table t1 purge; create table t1(id number,owner varchar2(9), c3 varchar2(30)); begin for i in 1.. 2000444 loop insert into t1 values(i,'zzz','z'||i); end loop; commit; end; / 二、手工评估列的选择性 SYS@zcs11g> set pagesize 0 select '--ID=',ceil(100*count(distinct ID)/count(*))||'%', 'owner=',ceil(100*count(distinct owner)/count(*))||'%', 'c3=',ceil(100*count(distinct c3)/count(*))||'%' from t1; --ID=100% owner=1% c3=100% 01.02-在创建索引后:收集统计信息以判断列的选择度(如果将'for all indexed columns size 2'中的数字改大,录视频浪费时间) SYS@zcs11g> create index t1_idx on t1(id,owner,c3); execute dbms_stats.gather_table_stats(ownname=>'SYS',tabname=>'T1',method_opt=>'for all indexed columns size 2',cascade=>TRUE); select '--',a.column_name,ceil(100*a.num_distinct/b.num_rows)||'%' from user_tab_columns a,user_tables b where a.table_name=b.table_name and a.table_name='T1'; -- ID 100% -- OWNER 1% -- C3 99% SYS@zcs11g> drop index t1_idx; 第02部分-(t1表)建索引之前测试新索引将对查询计划有何影响——虚拟索引(nosegment)
第03部分-(t1表)普通B树索引
|
相关文章推荐
- Oracle 11g R2 RAC:配置 DNS 解析 SCAN VIP
- Google+ Hangouts 视频群聊全面解析
- 视频矩阵系统中三代OSD字符叠加技术全面解析
- 视频编码格式全面解析
- 【Oracle RAC】Linux系统Oracle 11g R2 RAC 安装配置详细过程-视频培训教程
- solr 应用全面解析,简单的应用,多实例,分布式索引分发,如何在客户端配置注册多实例
- 【视频编码格式】全面解析
- DM6446的视频前端VPFE驱动之ioctl控制(视频缓存区,CCDC,decoder)解析之二
- 369Cloud升级全面解析
- 全面解析Bootstrap中transition、affix的使用方法
- 持续更新-ES6全面解析
- Oracle 11G R2 RAC中的scan ip 的用途和基本原理
- 全面解析DDN存储和HPC解决方案
- 全面解析5种常见悬挂—多连杆独立悬挂
- Oracle 11g R2 RAC安装时用户和用户组说明
- 全面解析Hibernate框架--小白必看
- android四大组件-service全面解析一
- 史上最稳定万能视频解析接口
- 全面解析PHP验证码的实现原理 附php验证码小案例
- python berkeley DB操作——打开btree索引文件中的database