전체 글 137

[SQL Tuning]인덱스를 사용하지 못하는 사례 6가지와 해결책

인덱스를 사용하지 못하는 사례 6가지와 해결책 인덱스를 사용하지 못하는 사례 6가지와 해결책 FULL TABLE SCAN NO INDEX 인덱스가 있지만 범위가 넓어서 FTS이 더 효율적일때 인덱스를 쓰면 더 효율적일듯.. BUT 사용 못하는 경우 조건식의 부재 --> 문장 수정 (표준) != IS NULL 변형 인덱스 사용 불가능 사례 1. 잘못 사용된 조건식 또는 조건식의 부재 SCOTT@orcl2> select ename, rowid from emp where ename = 'SCOTT'; ENAME ROWID ---------- ------------------ SCOTT AAAR3dAAEAAAACXAAH SCOTT@orcl2> select * from emp where rowid = 'AAAR3..

[SQL Tuning]옵티마이저 연산자

옵티마이저 연산자 Optimizer가 선택하는 Access PATH Table Access 전체 테이블 읽기(Full Table Scan : 실행 계획상에서는 'Table Access Full(TAF)' 로 출력) SQL> select * from emp; SQL> select /*+ FULL(emp) */ * from emp where deptno=10; HINT : Optimizer에게 이 경로를 이용하라고 지시 USER01@orcl2> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ----------..

[SQL Tuning]실행계획

실행계획 실행계획 확인 방법(도구) explain plan(파스만) plann_table에 저장(temporary table, $ORACLE_HOME/rebms/admin/utlxplan(영구테이블)) dbms_xplan.display from table(dbms_xplan.display) ==================================================================================================== vi setup.sql SET echo on CONN / AS SYSDBA DROP USER user01 CASCADE ; DROP TABLESPACE userdata INCLUDING CONTENTS AND DATAFILES ; CREAT..

[SQL Tuning]튜닝의 기초와 옵티마이져

튜닝의 기초와 옵티마이져 비효율적인 SQL 성능의 원인 오래되거나 누락된 optimizer 통계 누락된 access구조 최적 상태가 아닌 execution plan 선택 잘못 작성된 SQL 튜닝 방법론 하향식으로 진행(TOP DOWN) 분석 설계 구현 cursor를 할당 받는 다는 것은 PGA에서 UGA에 메모리 공간을 할당 받는다는 것이다. SQL문 처리 단계 커서를 생성 구문 분석 query 결과 기술 query 출력 정의 변수를 바인드 명령문 병령화 명령문 실행 query행 패치 커서를 닫는다. SQL 실행 과정 parser(구문분석) Transformation 전까지 진행 syntax check semantics check(의미상 유효성 체크) 권한 확인 private SQL area 할당 LC(..

[Oracle DBA]TRANSPORTABLE Tablespace

TRANSPORTABLE Tablespace transportable tablespace 두 개의 오라클 데이터베이스 간에 많은 양의 데이터를 가장 빠르게 이동할 수 있는 방법 데이터 웨어하우스와 데이터 마트 간의 데이터 이동을 간소화(exp, imp가 없다) 플랫폼 간의 데이터베이스 이전을 허용 1. TARGET DB(orcl) - platform과 endian format을 확인 /* SYS@orcl2> select d.platform_name, tp.endian_format from v$transportable_platform tp, v$database d where tp.platform_name=d.platform_name; PLATFORM_NAME ENDIAN_FORMAT ------------..

[Oracle DBA]Flashback 기술03

Flashback 기술03 ==================================================================================================== restore point 까지 flashback restore point before_ins restore point before_upd 두 개 찍고 처음엔 before_upd까지 flashback database 했다가 before_ins까지 다시 flashback database 한다. ==================================================================================================== SYS@orcl2> create ..

[Oracle DBA]Flashback 기술02

Flashback 기술02 Flashback Transaction Backout 과거 Transation이 수행하였던 Operation을 되돌립니다(Backout) 수행조건 COMPATIBLE >= 11.1.0.0 Archived Log Mode 추가의 Log 기록 ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; SELECT ANY TRANSACTION 권한 DBMS_FLASHBACK 패키지를 수행할 권한 -- SELECT ANY TRANSACTION 권한 HR@orcl2> select * from session_privs; PRIVILEGE ------------..