使用oracle index提高性能-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 1156315
  • 博文数量: 166
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3760
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-30 13:00
个人简介

about me:oracle ace pro,optimistic,passionate and harmonious. focus on oracle,mysql and other database programming,peformance tuning,db design, j2ee,linux/aix,architecture tech,etc

文章分类

全部博文(166)

文章存档

2024年(21)

2023年(28)

2022年(43)

2020年(62)

2014年(3)

2013年(9)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: oracle

2020-08-31 15:39:15


接part1:http://blog.chinaunix.net/uid-7655508-id-5836298.html

1.bitmap index使用

 

drop table t;
create table t as select * from dba_objects;
dingjun123@oradb> select count(*),
count(distinct owner) from t;
  count(*) count(distinctowner)
---------- --------------------
     76422                   35
 

分别对owner创建bitmap index和普通index测试




1)在olap环境下,使用bitmap索引比普通b*tree有很大优势
2)bitmap索引做count、or、and、minus等运算,可以充分发挥其性能
3)从例子中可以看出bitmap索引存储null值。

2.bitmap index的缺点
  下面来做个测试,数据准备如下:

create table bitmap_test(id number,status number);
create bitmap index idx_bitmap_test on bitmap_test(status);       
insert into bitmap_test values(1,0);
insert into bitmap_test values(2,0);
insert into bitmap_test values(3,0);
insert into bitmap_test values(1,1);
insert into bitmap_test values(2,1);
insert into bitmap_test values(3,1);
commit;



按照红色数字标识执行顺序:
session1:

session2:
出现enq: tx - row lock contention等待。

1)bitmap index上如果dml操作,按照位图索引块级别加锁,锁定的行多,容易造成阻塞或死锁。
2)因此,虽然bitmap index在一些统计运算、提升低选择性列运算性能上有优势,bitmap index在oltp中则是坚决杜绝使用的。只有在olap环境下,数据加载完毕后,基本处于只读状态,主要进行统计分析,才比较适合。
这个例子,在b*tree中则不会出现阻塞或死锁情况。
阅读(9765) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图