본문 바로가기

실행계획

#37_140805_TUNING_바인드 변수와 실행계획 # 바인드 변수와 실행계획 1. 바인드 변수를 사용할 때 주의할 사항 - SQL> select empno, ename, sal, from emp where empno = 7788;- 위 쿼리 수행 단계1) parsing > SQL > 기계어: 실행계획, SQL, Parse tree 3가지가 shared pool 캐쉬가 된다: 다음번에 똑 같은 문장이 들어오면 parsing 과정을 생략하기 위해서 수행2) execute3) fetch 2. 바인드 변수 사용 SQL> select empno, ename, sal from emp where empno = 7788;SQL> select empno, ename, sal from emp where empno = 7902- 위의 2문장은 다른 문장으로 인식한다SQL>.. 더보기
#37_140805_TUNING_실행계획과 통계정보 # 실행계획과 통계정보 l 10g 버전부터는 매일 밤 10시에 자동으로 DB의 모든 테이블에 대해서 통계정보가 자동으로 수집- SQL> select cline_name, status from dba_autotask_clinet’- auto optimizer stats collection : 테이블 통계정보 확인- auto space advisor : 빈공간을 확보하는 작업- sql tuning advisor : 자동으로 SQL 튜닝 l 현업에서 테이블통계정보를 안하는 이유- 대용량 테이블은 수집시간이 오래걸리기 때문에- 새로 수집한 통계정보로 인해서 실행계획이 달라져서 기존에 잘돌던 SQL이 느려짐을 우려해서 n 통계정보 잠그는 명령어 DBMS_STATS.LOCK_TABLE_STATS('OE','ORDE.. 더보기
#30_140724_WSHOP2_실행계획 # 실행계획 l 테이블 통계정보란?- 옵티마이저가 수행하려는 SQL에 대한 실행계획을 생성할 때 참고하는 테이블에 대한 분석정보- 이 정보로 정확한 실행계획이 생성된다 l emp100 테이블에 통계정보가 생성됐는지 여부 확인 SQL> select table_name, num_rows, last_analyzedfrom user_tableswhere table_name = 'EMP100';TABLE_NAME NUM_ROWS LAST_ANALYZED------------------------------ ---------- -------------------EMP100- last_analyzed 에 값이 없기 때문에 생성되지 않은 것이다 l emp100 테이블에 통계정보를 수집하는 명령어 SQL> exec db.. 더보기