본문 바로가기

DataBase/Oracle

[펌] 실행계획 보는 법 [Oracle] 실행계획 보는 법 ***설명 플랜에서 나오는 각 라인을‘로우 소스(Row Source)’라고 한다. 플랜을 보면서 처리 순서를 판단하는 것은 간단하다. 플랜은 트리 형태로 되어 있으며, 자신보다 하위 레벨이 있으면 하위 레벨부터, 같은 레벨이라면 위(상)의 로우소스부터 실행 된다. 위플랜의‘Optimizer=CHOOSE’에서알수있듯이해당SQL 문장은 옵티마이저 모드가 CHOOSE에서 플랜이 만들어진 것이다. 또한 플랜에서 ‘Cost=’의 항목이 나오면CBO로 풀렸다는 것이다. RBO인지 CBO인지의 판단은 옵티마이저 모드의 항목으로 판단하는 것이 아니라 ‘Cost=’로 판단한다는 것에 주의하자. 위 플랜에서 2개의 테이블 DEPT와 EMP 테이블 각각의 액세스 경로를 확인할 수 있다. 모.. 더보기
테이블 Analyze 1. 테이블 Analyze Analyze Table '테이블명' Estimate Statistics Sample 33 Percent; 2. 인덱스 Analyze Analyze Index '인덱스명' Estimate Statistics Sample 33 Percent; 더보기
테이블스페이스 변경 ALTER TABLE '테이블명' MOVE TABLESPACE '스페이스명'; 더보기
테이블rename alter table 테이블명 rename to 변경할테이블명 더보기
[펌]SQL튜닝 이해 ■ SQL튜닝 이해 1. 분포도 어떤 컬럼이 테이블에 평균적으로 분포되어 있는 정도를 말하며, 일반적으로 10 ~ 15% 정도를 인덱스와 전체테이블 액세스의 손익분기점으로 볼 수 있다. 분포도 = ( 데이타별 평균 로우수 / 테이블의 총 로우수 ) * 100 = ( 1 / 컬럼값의 종류 ) * 100 2. 처리범위 데이타량과 조건절의 비교내용에 따라 결정되며 결합되는 순서에 따라 조인의 효율에 커다란 영향을 미친다. 3. 실행계획 SQL이 요구한 데이타를 추출하기 위해 오라클이 차례로 수행하는 작업 방법을 말하며 이를 보면 비효율이 발생한 원인을 알 수 있고 좋은 실행계획이 수립될 수 있도록 하는 방법을 찾을 수 있다. 3.1 EXPAIN PLAN 활용 - SQL> PLAN_TABLE 생성 ( ORACL.. 더보기
[펌]Oracle SQL High-Performance Tuning Oracle SQL High-Performance Tuning Chapter2 SQL Tuning Quick Start TOP TIPS AND HINTS FOR SQL TUNING HINT : 성능을 염두에 두고 디자인하고 개발한다. 보통 SQL 튜닝은 실제로 성능 요건에 주어진 어떠한 고려 없이 디자인되고 개발된 어플리케이션상에서 이루어진다. 흔히 SQL 튜닝은 그러한 어플리케이션을 위한 최고의 선택이나, 성능을 염두에 두고 어플리케이션을 디자인 하는 것이 보다 효과적이고 효율적이다. 디자인에 의해 좋은 성능을 만들어 내는 것은 개발 라이프 사이클 내에서 다음의 행위들을 필요로 한다. · 개발 초기 단계에 시스템의 성능 특성에 대한 명시적인 내역 · 논리적이고 물리적인 모델링을 하는 동안 크리티컬한 트.. 더보기
[펌]Row를 한컬럼에 담아 옆으로 펼치기(SYS_CONNECT_BY_PATH) 참조 : http://tong.nate.com/lim4you/29357310 SELECT SUBSTR (MAX (SYS_CONNECT_BY_PATH (emp_nm, ',')), 2) path# FROM ( SELECT emp_nm, ROWNUM rnum FROM thum01m WHERE rownum '000' AND TA.ITEM_CODE = '10468636' ) CONNECT BY PRIOR RANKING = RANKING - 1 START WITH RANKING = 1 출처 : Tong - 라제폰님의 데이타베이스통 더보기
[펌]DB 링크 및 스냅샷 1. DB 링크 원격지에 있는 데이타베이스와 연결하는 것이져....(^^) 이것은 우선적으로 고려해야 될 사항이 있는데염... (1) 원격지 DB가 연결해도 된다는 허락을 해야 함다. DBA 권한 오라클 환경 설정에 보면 분산 트랙잭션이란 항목이 있는디 숫자를 적당히 주심 됨다. (아마 Default로 적당히 설정되어 있을 것임다.) (2) 내가 사용하는 DB에서 원격지 DB를 찾을 수 있어야 함다. tnsname에 원격지 오라클이 등록이 되어 있나 확인함다. (3) DB링크를 만들어 버림 됨다. (롱타입은 문제 있슴다 주의하셈) create public database link 링크명 connect to 원격지 접속 아이디 identified by 원격지 접속 비밀번호 using ' tnsname에 등.. 더보기
[펌]오라클 SELECT를 이용한 내용 확인 ※ ORACLE SID 확인 SQL> SELECT INSTANCE FROM V$THREAD; ※ ORACLE DB_NAME 확인 SQL> SELECT NAME FROM V$DATABASE; ※ ORACLE USER 확인 SQL> SELECT * FROM ALL_USERS; ※ 등록된 USER 목록 보기 SQL> SELECT USERNAME, USER_ID FROM DBA_USERS ORDER BY USERNAME; ※ USER가 소유한 모든 테이블 보기 SQL> SELECT TABLE_NAME FROM USER_TABLES; ※ 사용자 정보 확인 SQL> SELECT USERNAME, DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE FROM DBA_USERS; ※ 오브젝트 조회 S.. 더보기
[펌]ORACLE HINT 정리 ================================= flyOracle 발췌 =========================== * RULE : RULE BASE 옵티마이져 사용 * FIRST_ROWS : 첫째 레코드의 추출시간을 최소화 할 목적으로 최적화 * ALL_ROWS : 모든 레코드를 모두 처리하는 시간의 최소화는 목적으로 최적화 * FULL : 지정된 테이블에 대한 전체 스캔 * ROWID : 지정된 테이블에 대한 ROWID에 의한 테이블 스캔 * CUSTER : 지정된 테이블에 대한 클러스터 스캔 * HASH : 지정된 테이블에 대한 해쉬 스캔 * INDEX : 특정한 인덱스를 사용함을 알림 SELECT /*+ INDEX(order item_index_name) */ * FROM ord.. 더보기