2014년 12월 18일 목요일

사용되지 않는 인덱스 찾기[오라클자바커뮤니티/빅데이터/오라클/PLSQL/SQL쿼리/SQL튜닝실무교육/SQL기초교육]

사용되지 않는 인덱스 찾기 

Oracle 9i의 특징인 monitoring index 기능을 이용하면 사용되고 있지 않은 인덱스를 확인 할 수 있습니다. 

절차는 다음과 같습니다. 

1.        index usage 통계 이용 
2.        index usage 통계치는 쿼리에 대한 parsing이 일어날 때 확인 
3.        turn on index monitor 
4.        index monitor를 turn on/off 한다는 것은 이미 사용중인 cursor를 invalidate 상태로 만들어 다시 컴파일하는 과정이 필요하므로 가급적 데이터베이스에 대한 작업이 적을 때 하는 것이 바람직합니다. 

[예] 

SQL> conn scott/tiger 
연결되었습니다. 

SQL> select table_name, index_name, monitoring, used, 
  2            start_monitoring, end_monitoring 
  3  from v$object_usage; 

선택된 레코드가 없습니다. 

SQL> create index idx_myemp_sal on myemp(sal); 

인덱스가 생성되었습니다. 

SQL> create index idx_myemp_ename on myemp(ename); 

인덱스가 생성되었습니다. 

SQL> alter index idx_myemp_sal monitoring usage; 

인덱스가 변경되었습니다. 

SQL> alter index idx_myemp_ename monitoring usage; 

인덱스가 변경되었습니다. 

SQL> select table_name, index_name, monitoring, used, 
  2            start_monitoring, end_monitoring 
  3  from v$object_usage; 

TABLE_NAME                    INDEX_NAME                    MON USE 
------------------------------ ------------------------------ --- --- 
START_MONITORING    END_MONITORING 
------------------- ------------------- 
MYEMP                          IDX_MYEMP_ENAME                YES NO 
03/01/2005 23:17:14 

MYEMP                          IDX_MYEMP_SAL                  YES NO 
03/01/2005 23:17:00 

SQL>set autotrace on;  이 부분은 tuning 강좌를 참고하여 확인 바랍니다. 

SQL> select sum(sal) from myemp 
  2  where job = 'SALEMAN' 
  3  and sal > 15000; 

  SUM(SAL) 
---------- 



Execution Plan 
---------------------------------------------------------- 
  0      SELECT STATEMENT Optimizer=CHOOSE 
  1    0  SORT (AGGREGATE) 
  2    1    TABLE ACCESS (BY INDEX ROWID) OF 'MYEMP' 
  3    2      INDEX (RANGE SCAN) OF 'IDX_MYEMP_SAL' (NON-UNIQUE) 




Statistics 
---------------------------------------------------------- 
        144  recursive calls 
          3  db block gets 
        383  consistent gets 
        236  physical reads 
        580  redo size 
        381  bytes sent via SQL*Net to client 
        503  bytes received via SQL*Net from client 
          2  SQL*Net roundtrips to/from client 
          4  sorts (memory) 
          0  sorts (disk) 
          1  rows processed 

-- IDX_MYEMP_SAL인덱스는 사용되었으므로 USED가 YES로 바뀌어 있습니다. 

SQL> select table_name, index_name, monitoring, used, 
  2            start_monitoring, end_monitoring 
  3  from v$object_usage; 

TABLE_NAME                    INDEX_NAME                    MON USE 
------------------------------ ------------------------------ --- --- 
START_MONITORING    END_MONITORING 
------------------- ------------------- 
MYEMP                          IDX_MYEMP_ENAME                YES NO 
03/01/2005 23:17:14 

MYEMP                          IDX_MYEMP_SAL                  YES YES 
03/01/2005 23:17:00 

SQL> alter index IDX_MYEMP_ENAME nomonitoring usage; 

인덱스가 변경되었습니다. 

SQL> alter index IDX_MYEMP_SAL nomonitoring usage; 

인덱스가 변경되었습니다. 

- 모니터링이 종료 되더라도 이전의 기록은 없어지지 않고 남아 있습니다. 

SQL> select table_name, index_name, monitoring, used, 
  2            start_monitoring, end_monitoring 
  3  from v$object_usage; 

TABLE_NAME                    INDEX_NAME                    MON USE 
------------------------------ ------------------------------ --- --- 
START_MONITORING    END_MONITORING 
------------------- ------------------- 
MYEMP                          IDX_MYEMP_ENAME                NO  NO 
03/01/2005 23:17:14 03/01/2005 23:21:09 

MYEMP                          IDX_MYEMP_SAL                  NO  YES 
03/01/2005 23:17:00 03/01/2005 23:21:20


 [100%환급,실무전문]SQL/빅데이터/자바/스프링/웹퍼블리싱/안드…오라클자바…12-272893
 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육…오라클자바…12-112105
53 [평일100%환급7건]웹퍼블리싱,자바&JSP,안드로이드,C#닷넷,SQL기… 오라클자바…03-151974
52 [주말]C#,ASP.NET마스터 오라클자바…01-312106
51 [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… 오라클자바…01-313067
50 [주말주간]자바&웹,jQUERY,스프링프레임워크,마이바티스 오라클자바…01-311623
49 [평일주간/야간,주말주간/야간]Spring,MyBatis,Hibernate개발자… 오라클자바…01-191947
48 [평일주간/야간,주말주간/야간]안드로이드개발자과정(Adnroid 교… 오라클자바…01-111814
47 [평일야간,주말주간야간]JAVA,Network&JSP&Spring,MyBatis,Hiber… 오라클자바…01-032431
46 [100%환급,실무전문]SQL/빅데이터/자바/스프링/웹퍼블리싱/안드… 오라클자바…12-272893
45 [주말야간]개발자를위한PLSQL,SQL튜닝,힌트(토/일) 오라클자바…12-192026
44 [평일주간/야간,주말주간/야간]웹퍼블리싱 마스터(HTML5,CSS3,jQ… 오라클자바…12-141996
43 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… 오라클자바…12-112105
42 [주말야간]JAVA,JSP,Spring,PLSQL,힌트,웹퍼블리싱,안드로이드,… 오라클자바…12-091637
41 [평일야간,주말야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011862
40 [기업100%환급]오라클&자바웹스프링신입과정3주(SQL,JAVA,JSP,Se… 오라클자바…12-012110
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011509

댓글 없음:

댓글 쓰기