본문 바로가기

오라클81

CH03.오라클 성능 관리 - 04.DBMS_XPLAN 패키지 오라클은 9i부터 plan_table에 실행계획들을 저장하기 시작했고, DBMS_XPLAN패키지를 이용해 plan_table에 저장된 실행계획들을 좀 더 쉽게 출력해 볼 수 있게 되었습니다. 10g부터는 라이브러리 캐시에 캐싱돼 있는 SQL커서에 대한 실행계획은 물론 Row Source별 수행통계까지 손쉽게 출력해 볼 수 있도록 기능이 확장되었습니다. AWR에 수집된 과거 수행했던 SQL에 대한 실행계획을 확인하는 것도 가능합니다. (1)예상 실행계획 출력 @?/rdbms/admin/utlxpls.sql 스크립트를 통해 실행계획을 출력하는 방법이 있는데, 그 스크립트를 열어보면 내부적으로 dbms_xplan패키지를 호출하는 것을 볼 수 있습니다. utlxpls 내부 Rem Rem $Header: rdbm.. 2020. 1. 1.
CH03.오라클 성능 관리 - 03.SQL 트레이스 SQL을 튜닝할 때 가장 많이 사용되는 강력한도구 입니다. (1) 자기 세션에 트레이스 걸기 아래는 현재 자신이 접속해 있는 세션에만 트레이스를 설정하는 방법입니다. SQL> alter session set sql_trace=true; SQL 문 수행 SQL> alter session set sql_trace=false; 위와 같이 트레이스를 설정하고 SQL을 수행하면 user_dump_dest 파라미터로 지정된 디렉토리 밑에 프레이스파일(.trc)가 생성됩니다. 가장 최근에 생성되거나 수정된 파일을 찾아 분석하면 됩니다. TKProf 유틸리티 트레이스 파일을 보기 쉬운 형태로 포맷팅하면 유틸리티입니다. 사용법은 tkprof를 치면 확인할 수 있습니다. tkprof Usage: tkprof tracefi.. 2020. 1. 1.
CH03.오라클 성능 관리 - 01.Explain plan 02.AutoTrace 01 Explain plan SQL을 수행하기 전에 실행계획을 확인하고자 할때 explain plan 명령을 사용합니다. 이 명령어를 사용하려면 먼저 plan_table을 생성해야 하는데, 아래 스크립트를 실행하면 됩니다. sql>@?/rdbms/admin/utlxplan.sql 오라클 10g 부터는 기본적으로 sys.plan_table$이 생성됩니다. 그리고 이를 가리키는 public synonym을 기본적으로 생성해두기 때문에 사용자가 별도로 plan_table을 만드는 수고를 하지 않아도 됩니다. SQL> select owner,synonym_name,table_owner,table_name 2 from all_synonyms 3 where synonym_name='PLAN_TABLE'; OWNER.. 2019. 12. 31.
인덱스 스플릿(INDEX SPLIT) 인덱스 스플릿(index split)이란? B-tree index에서 새로운 index key가 들어왔을 때 기존에 할당된 블록 내에 저장할 영역이 없어 새로운 블록을 할당하는 것입니다. 인덱스 스플릿은 새로 들어오는 index key 데이터에 따라 2가지 방식으로 이루어집니다. 1. 50:50 index split index key값이 기존의 index key 값에 비해 제일 큰 값이 아닌 경우 50/50 block split이 발생합니다. 기존에 존재하던 old block과 새로운 new block에 50%씩 데이터가 채워져 스플릿이 발생하는 것을 말합니다. 최대값이 아닌 값이 들어오면 old와 new block 중 어느 곳에 들어갈 지 모르기 때문에 50:50으로 스플릿을 합니다. 2. 90:10 .. 2019. 12. 30.