본문으로 건너뛰기

SQL 분석

홈 화면 > 프로젝트 선택 > 분석 > SQL 분석

데이터베이스에서 실행되는 SQL 문을 분석하여 성능 문제를 진단하는 데 유용한 자료를 제공합니다. SQL 분석 메뉴는 두 가지 주요 탭으로 구성되어 있습니다.

  • Access Statistics: 성능 저하의 원인이 될 수 있는 Full Scan이 발생한 SQL을 확인할 수 있습니다.

  • Plan Change History: 동일한 SQL ID를 가진 SQL 문이 옵티마이저에 의해 다른 실행 플랜으로 변경된 경우를 감지합니다. 이는 성능에 영향을 줄 수 있으므로 모니터링이 필요합니다.

Access Statistics

성능 저하의 원인이 될 수 있는 Full Scan이 발생한 SQL을 확인할 수 있습니다. 시간별, 유형별 Full Scan 발생 횟수를 확인할 수 있습니다. 이를 통해 Full Scan을 자주 발생시키는 SQL 문을 최적화하고, 불필요한 Full Scan을 줄임으로서 자원 사용량을 최적화할 수 있습니다. 또한 Full Scan을 Index Scan으로 대체해 쿼리 성능을 향상시키는 방법을 고려해 보세요.

AccessStatistics

화면 위에서 조회 시간 및 대상을 선택하세요. 시간인스턴스 옵션을 설정한 다음 검색 아이콘 버튼을 선택하세요. 필요한 경우 필터 옵션을 설정해 원하는 조회 결과를 필터링할 수 있습니다.

  • Access Count: 시간대별 Full Scan 발생 횟수를 확인할 수 있는 막대 그래프 차트입니다. 특정 시간대를 선택하면, 선택한 시간에 수행된 SQL 목록이 화면 아래 목록과 오른쪽 Operation Count 차트에 표시됩니다.

  • Operation Count: Full Scan이 발생한 유형과 그 수를 확인할 수 있습니다. 각 막대에 마우스를 오버하면 오브젝트 이름을 확인할 수 있습니다.

    Operation Count

쿼리 자세히 보기

화면 아래에 SQL 목록에서 query 컬럼 항목을 선택하면 SQL 상세 창이 나타납니다. SQL 쿼리문과 Plan 정보를 확인할 수 있습니다.

SQL 상세

  • SQL 통계 보기: 해당 SQL 쿼리문과 관련한 통계 정보를 확인할 수 있는 SQL 통계 메뉴로 이동할 수 있습니다.
  • Runtime Plan: 선택된 SQL 쿼리의 실행 계획과 런타임 정보를 제공합니다. 실행 횟수, 평균 실행 시간, 평균 물리적 읽기 등 세부 정보를 제공합니다.

  • Explain Plan: 옵티마이저가 예측한 실행 계획을 보여줍니다. 비용, 작업, 객체 이름, 카디널리티 등의 정보를 제공합니다.

  • Plan History: 데이터베이스에서 실행된 SQL 쿼리의 실행 계획에 대한 이력을 확인할 수 있습니다.

  • Bind Capture: 데이터베이스에서 실행된 SQL 쿼리에 사용된 바인드 변수의 값을 확인할 수 있습니다. 이를 통해 쿼리 실행의 실제 내용을 확인할 수 있습니다.

    노트

    실시간 실행된 bind 값이 아닌 데이터베이스에 캡처된 값(v$sql_bind_capture)입니다. 건수가 많으면 100개까지 표시합니다.

조회 결과 필터링하기

조회한 SQL 목록에서 필터 옵션을 통해서 Full Scan 또는 Index Scan 기준으로 결과를 필터링할 수 있습니다.

  1. 필터 옵션을 선택하세요.

    필터

  2. 필터 수정하기에서 FULL 또는 INDEX 항목을 선택하세요.

  3. 적용 버튼을 선택하세요.

  4. 선택한 조건을 SQL 목록에에 반영하려면 검색 아이콘 버튼을 선택하세요.

노트

Full Scan, Index Scan을 모두 검색하려면 필터 수정하기에서 FULL, INDEX 옵션을 모두 선택하세요. 또는 더하기 아이콘 버튼을 선택해 필터 옵션을 추가할 수도 있습니다.

Plan Change History

동일한 SQL ID를 가진 SQL 문이 옵티마이저에 의해 다른 실행 플랜으로 변경된 경우를 감지합니다. 이는 성능에 영향을 줄 수 있으므로 모니터링이 필요합니다. 플랜 변경으로 인한 성능 변화를 감지하고 대응하여 불필요한 플랜 변경을 식별하여 SQL 성능의 일관성을 유지할 수 있습니다.

Plan Change History

화면 위에서 조회 시간 및 대상을 선택하세요. 시간인스턴스 옵션을 설정한 다음 검색 아이콘 버튼을 선택하세요.

Plan Change Count: 시간대별 플랜 변경이 일어난 횟수를 확인할 수 있는 막대 그래프 차트입니다. 특정 시간대를 선택하면, 선택한 시간의 플랜 변경 목록을 표시합니다. 목록에서 특정 변경 항목을 선택하면 화면 아래에 플랜 변경 전후의 세부 내용을 확인할 수 있습니다.

Plan Change History

플랜 변경 전후의 차이를 상세히 비교함으로써 어떤 변경이 성능에 영향을 미쳤는지 파악할 수 있습니다.