2014년 7월 18일 금요일

[2호선 구로디지털단지,ORACLEJAVA커뮤니티,실무SQL,오라클11g에서 비트맵인덱스를 이용한 count, or 연산 튜닝, oracle bitmap index SQL tuning]

[2호선 구로디지털단지,ORACLEJAVA커뮤니티,실무SQL,오라클11g에서 비트맵인덱스를 이용한 count, or 연산 튜닝, oracle bitmap index SQL tuning]

oracle 11g에서...

myemp1 테이블의 구조는 다음과 같다.
SQL> desc myemp1
 이름                                      널?      유형
 ----------------------------------------- -------- -------------------
 EMPNO                                     NOT NULL NUMBER
 ENAME                                              VARCHAR2(100)
 DEPTNO                                             VARCHAR2(1)
 ADDR                                               VARCHAR2(100)
 SAL                                                NUMBER
 SUNGBYUL                                           VARCHAR2(1)

데이터는 2000만건 정도 있으며, 현재 인덱스는 없다.

-- 10여초 이상
select count(*) from myemp1
-- 이것도 10여초 이상
select count(*) from myemp1
where deptno = 1
   or deptno = 4

1. b*tree 인덱스 생성
create index idx_myemp1_deptno on myemp1(deptno)

--8.9초(index fast full scan)
select count(deptno) from myemp1
where deptno = 1
   or deptno = 4
   
-- 16초  
select count(*) from myemp1
where deptno = 1
   or deptno = 4
   
-- 9초정도 index fast full scan
select count(deptno) from myemp1
where deptno = 1
   or deptno = 4     
   

2. bitmap 인덱스 생성
create bitmap index idx_myemp1_deptno on myemp1(deptno)

--0초(비트맵인덱스 이용)
select count(deptno) from myemp1
where deptno = 1
   or deptno = 4
   
   
select count(*) from myemp1
쿼리역시 비트맵 인덱스를 이용하여 0초

물론 비트맵 인덱스가 이러한 장점만 있는것은 아니다. DML이 발생하면
같은 값을 가지는 모든 레코드에 락이 걸린다는점 유념하자.


오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급
www.oraclejavacommunity.com


평일주간(9:30~18:10) 개강
(7/21)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 
(7/21)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(7/21)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(7/21)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정
(7/28)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/28)[기업100%환급]안드로이드개발자과정
(7/28)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(7/22)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(7/22)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(7/24)SQL기초에서실무까지
(7/29)안드로이드개발자과정
(7/29)Spring3.X, MyBatis, Hibernate실무과정
(8/04)웹퍼블리싱 마스터
(8/05)MyBatis3.X, Hibernate4.X ORM실무과정

주말(10:00~17:50) 개강
(7/26)Spring3.X, MyBatis, Hibernate실무과정
(7/26)Spring,MyBatis,Hibernate속성할인과정
(7/26)개발자를위한PLSQL,SQL튜닝,힌트
(8/02)C#,ASP.NET마스터
(8/02)웹퍼블리싱 마스터
(8/02)SQL초보에서 Schema Object까지
(8/02)MyBatis3.X, Hibernate4.X ORM실무과정
(8/09)안드로이드개발자과정
(8/09)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(8/23)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)

주말저녁(18:30~22:20) 개강
(8/02)JAVA,Network&WEB&Framework
(8/09)SQL기초에서실무까지

댓글 없음:

댓글 쓰기