벡터 색인 측정항목

문서 버전을 선택합니다.

이 페이지에는 AlloyDB Omni에서 생성하는 벡터 색인과 관련된 측정항목이 나와 있습니다. alloydb_scann 확장 프로그램을 설치할 때 사용할 수 있는 pg_stat_ann_indexes 보기를 사용하여 이러한 측정항목을 볼 수 있습니다.

측정항목을 보는 방법에 관한 자세한 내용은 벡터 색인 측정항목 보기를 참고하세요.

사용성 측정항목

유용성 측정항목에는 색인 구성, 색인 검색 수와 같은 측정항목을 사용하여 색인 활용 상태를 파악하는 데 도움이 되는 측정항목이 포함됩니다.

측정항목 이름 데이터 유형 설명
relid OID 벡터 색인이 포함된 테이블의 고유 식별자
indexrelid OID 벡터 색인의 고유 식별자
schemaname NAME 색인을 소유한 스키마의 이름
relname NAME 색인이 포함된 테이블의 이름
indexrelname NAME 색인의 이름
indextype NAME 색인 유형입니다. 이 값은 항상 alloydb_scann로 설정됩니다.
indexconfig TEXT[] 색인이 생성될 때 정의된 리프 수, 양자화기 등의 구성
indexsize TEXT 색인 크기
indexscan BIGINT 색인에서 시작된 색인 스캔 수

조정 측정항목

조정 측정항목은 현재 색인 최적화에 대한 통계를 제공하므로 더 빠른 쿼리 성능을 위해 추천을 적용할 수 있습니다.

측정항목 이름 데이터 유형 설명
insertcount BIGINT 색인에 대한 삽입 작업 수입니다. 이 측정항목에는 색인이 생성되기 전에 존재했던 행 수도 포함됩니다.
updatecount BIGINT 색인에 대한 업데이트 작업 수입니다. 이 측정항목은 HOT 업데이트를 고려하지 않습니다.
deletecount BIGINT 색인에 대한 삭제 작업 수입니다.
distribution JSONB 색인의 모든 파티션에 걸친 벡터 분포입니다.

다음 필드에 분포가 표시됩니다.
  • maximum (INT8): 모든 파티션의 최대 벡터 수입니다.
  • minimum (INT8): 모든 파티션의 최소 벡터 수입니다.
  • average (FLOAT) : 모든 파티션의 평균 벡터 수입니다.
  • outliers (INT8[]): 모든 파티션의 상위 이상치입니다. 이 값은 상위 20개의 이상치를 보여줍니다.

참고: K-평균 클러스터링 알고리즘의 고유한 특성으로 인해 색인이 처음 생성될 때도 파티션 간 벡터 분포에 어느 정도 분산이 항상 존재합니다.

측정항목을 기반으로 한 조정 권장사항

변형
insertcount, updatecount, deletecount 측정항목은 색인의 벡터에 발생한 변경사항이나 변이를 함께 보여줍니다.
색인은 특정 수의 벡터와 파티션으로 생성됩니다. 벡터 색인에서 삽입, 업데이트, 삭제와 같은 작업을 실행하면 벡터가 있는 초기 파티션 세트에만 영향을 미칩니다. 따라서 각 파티션의 벡터 수가 시간에 따라 변동되어 재현율, QPS 또는 둘 다에 영향을 미칠 수 있습니다.
시간이 지남에 따라 ANN 검색 쿼리에서 QPS가 낮거나 재현율이 좋지 않은 등 속도 또는 정확도 문제가 발생하는 경우 이러한 측정항목을 검토해 보세요. 전체 벡터 수에 비해 변형 수가 많으면 색인 생성이 필요할 수 있습니다.
분포
distribution 측정항목은 모든 파티션의 벡터 분포를 보여줍니다.
색인을 만들면 특정 수의 벡터와 고정 파티션으로 생성됩니다. 파티셔닝 프로세스와 후속 배포는 이 고려사항을 기반으로 이루어집니다. 벡터가 추가되면 기존 파티션 간에 파티션이 지정되므로 색인이 생성될 때의 분포와 다른 분포가 됩니다. 최종 분포에서는 모든 벡터를 동시에 고려하지 않으므로 재현율, QPS 또는 둘 다 영향을 받을 수 있습니다.
ANN 검색 쿼리의 성능이 점진적으로 저하되는 경우(예: 응답 시간이 느려지거나 결과의 정확도가 감소함(QPS 또는 재현율로 측정)) 이 측정항목을 확인하고 색인을 다시 생성하는 것이 좋습니다.