10 V$SQL

  • 주기적으로 사용되는 상위 10% 이내의 프로그램만 집중적으로 튜닝하더라도 시스템 안정화 및 고도화를 이룰 수 있음.
  • v$sql은 개별 SQL 커서의 수행 통계 분석과 집중 튜닝이 필요한 대상 SQL을 선정한는 데 활용할 수 있음.
  • 튜닝 전후 성능 향상도를 비교할 목적으로 통계를 내는 데도 활용할 수 있음.
  • v$sql은 라이브러리 캐시에 캐싱돼 있는 각 Child 커서에 대한 수행통계를 보여줌.
  • v$sqlarea는 Parent 커서에 대한 수행통계를 나타내며, 많은 컬럼이 v$sql을 group by 해 구한 값임.
  • v$sql은 퀄리가 수행을 마칠 때마다 갱신되며, 오랬동안 수행된는 쿼리는 5초마다 갱신이 이루어짐.
  • v$sql은 누적 통계치를 갖음.
    SQL 수행횟수로 나눈 평균값, SQL 한번 수행당 얼만큼의 일량과 시간을 소비하는지를 계산해야 의미 있는 분석이 가능.
  • v$sql_plan 과 JOIN을 통해 실행계획을 확인하고, v$sql_plan_statistics를 통해 각 Row Source별 수행 통계를 확인할 수 있음.
  • v$sql_bind_capture 를 통해 전체는 아니더라도 정해진 기간에 한번씩 샘플링한 바인드 변수 값을 확인할 수 있음.
    더 자주 샘플링하도록 하려면 _cursor_bind_interval 파라미터 값을 줄이면 되고, 기본 설정 값은 900초.
  • v$sql을 포함해 오라클은 SQL 커서와 관련된 각종 수행 통계를 주기적으로 AWR에 저장하며
    스냅샷 시점에 캐시에 남아있던 커서의 수행 통계만 저장됨.
  • 하기와 같은 기준에 따라 Top SQL만 수집함.
    (Parse Calls, Executions, Buffer Gets, Disk Reads, Elaped Time, CPU Time, Wait Time, Version Count, Sharable Memory)