스터디69 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. CH2. 트랜잭션과 LOCK - 05.오라클 Lock 오라클은 공유 리소스와 사용자 데이터를 보호할 목적으로 다양한 종류의 Lock을 사용합니다. 앞서 래치와 버퍼 Lock에 대해서는 1장에서 다루었습니다. 래치 : SGA에 공유돼 있는 갖가지 자료구조를 보호할 목적으로 사용하는 가벼운 Lock 버퍼 Lock : 버퍼 블록에 대한 액세스를 직렬화 라이브러리 캐시 Lock과 Pin은 라이브러리 캐시에 공유된 오브젝트 정의,커서, PL/SQL 프로그램 같은 실행가능 오브젝트에 대한 정의 및 실행계획을 보호하는 Lock입니다. 라이브러리 캐시 Lock : 라이브러리 캐시 오브젝트에 대한 핸들을 보호 라이브러리 캐시 Pin : 라이브러리 캐시 오브젝트의 실제 내용이 담긴 힙(heap)을 보호 DML Lock은 다중 사용자에 의해 동시에 액세스되는 사용자 데이터의 .. 2019. 12. 29. 이전 1 ··· 12 13 14 15 16 17 18 다음