Snowsight 를 사용하여 검색 최적화 모니터링하기

검색 최적화 서비스를 사용 설정한 후에는 Snowsight 에서 쿼리 사용 방식에 대한 통계를 모니터링할 수 있습니다. Snowsight 를 사용하여 쿼리가 검색 최적화 서비스를 사용하지 않는 이유를 확인할 수도 있습니다.

쿼리에 대한 검색 최적화 사용량 모니터링하기

쿼리가 검색 최적화 서비스를 사용하는 경우 쿼리 프로필 에는 다음이 포함됩니다.

  • Search Optimization Access 노드 - 전용 Search Optimization Access 노드는 쿼리 계획에 있습니다. 이 노드를 선택하면 테이블 스캔 정보 및 검색 최적화와 관련된 정보에 액세스할 수 있습니다.

  • Attributes 창 - 노드에 대한 이 창에는 다음이 포함됩니다.

    • 전체 테이블 이름 - 검색 최적화를 사용한 쿼리에 대해 스캔한 테이블을 식별합니다.

    • 검색 최적화 사용 정보 - 이 섹션에는 쿼리 실행 중에 검색 최적화가 참조한 식 IDs 가 나열됩니다. 각 식 ID 는 테이블에 대해 정의된 검색 방법 및 열 대상에 해당합니다. 다음 쿼리를 실행하여 식 IDs 와 그에 해당하는 메서드 및 대상을 표시합니다.

      DESCRIBE SEARCH OPTIMIZATION ON <table_name>;
      
      Copy

      이 명령에 대한 자세한 내용은 DESCRIBE SEARCH OPTIMIZATION 섹션을 참조하십시오.

  • Statistics 창 - 노드에 대한 이 창에는 다음 메트릭이 포함되어 있습니다.

    • Bytes scanned - 테이블 스캔 작업을 실행하는 동안 읽은 총 데이터 양입니다.

    • Partitions scanned - 실제로 스캔한 마이크로 파티션의 수입니다.

    • Partitions total - 테이블에 대한 마이크로 파티션의 총 개수입니다.

    • Partitions pruned by search optimization - 검색 최적화를 통해 해당 테이블 스캔에서 효과적으로 제거된 마이크로 파티션의 수입니다.

다음 이미지는 Statistics 창에 있는 메트릭의 예를 보여줍니다.

검색 최적화 통계가 포함된 검색 최적화 액세스 노드를 표시합니다.

검색 최적화가 사용되지 않은 이유 파악하기

테이블에 검색 최적화가 구성되어 있어도 항상 사용되지 않을 수도 있습니다. 쿼리에 검색 최적화가 사용되지 않은 경우 Attributes 창에서 Table Scan 노드의 Search Optimization Usage Info 섹션을 살펴보십시오. 이 섹션에는 다음 설명 중 하나가 표시됩니다.

  • 조건자가 일치하지 않는 경우 다음과 같은 메시지가 표시됩니다.

    Search optimization service was not used because no
    match was found between used predicates and the
    search access paths added for the table.
    

    이 메시지는 이 테이블의 쿼리에 사용되는 조건자가 테이블에 대해 정의된 검색 방법과 호환되지 않음을 나타냅니다. 다음 명령을 실행하여 테이블에 대한 최적화 구성을 검토할 수 있습니다.

    DESCRIBE SEARCH OPTIMIZATION ON <table_name>;
    
    Copy

    검색 최적화에서 지원하는 조건자 및 데이터 타입에 대한 자세한 내용은 검색 최적화의 이점을 활용할 수 있는 쿼리 식별하기 섹션을 참조하십시오.

  • 비용을 기준으로 검색 최적화를 사용하지 않기로 결정한 경우 다음 메시지가 표시됩니다.

    The query optimizer estimated that the search optimization
    service would not be beneficial for this table scan.
    

    이 메시지는 쿼리에 사용되는 조건자가 테이블에 정의된 검색 방법과 호환되지만 쿼리 최적화 도구가 검색 최적화를 통해 쿼리 성능이 개선되지 않을 가능성이 높다고 판단했음을 나타냅니다. 다른 조건자 또는 소스 테이블의 다른 데이터를 사용하는 후속 쿼리에는 검색 최적화가 사용될 수 있습니다.

  • 조건자 제한을 초과하면 다음과 같은 메시지가 표시됩니다.

    Search optimization service was not used because the
    predicate limit was exceeded.
    

    이 메시지는 조건자에 너무 많은 고유 조건자가 포함되어 있음을 나타냅니다. 검색 최적화 조건문의 정확한 수는 조건문의 유형에 따라 달라질 수 있으며, 쿼리 내의 조건문 수와 정확히 일치하지 않을 수 있습니다. 와일드카드 구문을 사용하는 하위 문자열 쿼리전체 텍스트 검색 쿼리 는 조건문 한도에 도달할 가능성이 더 높습니다.

다음 이미지는 조건자 불일치 메시지의 예를 보여줍니다.

검색 최적화를 사용하지 않는 이유에 대한 메시지와 함께 검색 최적화 액세스 노드를 표시합니다.