PostgreSQL용 AlloyDB는 데이터베이스가 정기적으로 처리하는 쿼리를 추적하는 색인 자문을 제공합니다. 주기적으로 이러한 쿼리를 분석해서 쿼리 성능을 늘릴 수 있는 새로운 색인을 추천합니다.
권장사항을 테이블로 보고 쿼리하거나 언제든지 주문형 분석 및 보고를 요청할 수 있습니다.
시작하기 전에
색인 어드바이저를 사용하기 전에 다음 요구사항을 충족하는지 확인하세요.
필수 확장 프로그램 사용 설정
Google Cloud 콘솔에서 클러스터 페이지로 이동합니다.
리소스 이름 열에서 클러스터를 클릭합니다.
쿼리 통계 페이지에서 쿼리 설정 수정을 클릭합니다.
색인 도우미 사용 설정을 클릭합니다.
확장 가능한 근사 최근접 이웃 (ScaNN) 색인에 대한 벡터 검색 색인 추천을 사용 설정하려면
scann.enable_preview_features
플래그 (미리보기)를 사용 설정합니다. 자세한 내용은 인스턴스의 데이터베이스 플래그 구성을 참고하세요.
색인 자문 권장사항 보기
AlloyDB는 색인 자문 분석을 주기적으로 자동으로 실행합니다. 각 데이터베이스에 있는 다음 두 테이블 뷰를 통해 결과를 읽을 수 있습니다.
google_db_advisor_recommended_indexes
은 데이터베이스에 권장되는 새로운 색인을 나열합니다. 또한 각 색인에 필요한 스토리지 예상 값과 각 색인이 영향을 줄 수 있는 쿼리 수가 포함됩니다.google_db_advisor_workload_report
에는 자문이 하나 이상의 새 색인을 권장하는 각 쿼리가 나열됩니다. 각 행에는 관련 쿼리의 권장사항이 요약되어 표시됩니다.google_db_advisor.enable_vector_index_advisor
를 사용하면google_db_advisor
확장 프로그램이 벡터 쿼리에 대한 색인을 추천할 수 있습니다.scann.enable_preview_features
플래그 (프리뷰)를 사용하여 이 플래그를 사용 설정할 수도 있습니다.
예를 들어 테이블 형식으로 최신 색인 권장 분석의 결과를 보려면 다음 쿼리를 실행합니다.
SELECT * FROM google_db_advisor_recommended_indexes;
색인 자문의 최신 분석으로 권장사항이 발견되지 않으면 쿼리가 행이 없는 테이블을 반환합니다.
이러한 보고서가 모두 일반적인 데이터베이스 뷰로 존재하기 때문에 원하는 방식으로 정보를 필터링하거나 표시하는 쿼리를 작성할 수 있습니다. 예를 들어 권장 색인을 완전히 연결된 쿼리와 쌍으로 연결하는 보고서를 보려면 해당 query_id
열에서 google_db_advisor_workload_report
및 google_db_advisor_workload_statements
뷰를 조인합니다.
SELECT DISTINCT recommended_indexes, query
FROM google_db_advisor_workload_report r, google_db_advisor_workload_statements s
WHERE r.query_id = s.query_id;
수동으로 색인 분석 요청
색인 자문의 다음 예정된 분석을 기다리지 않고 AlloyDB가 분석을 즉시 실행하고 보고서를 표시하도록 요청할 수 있습니다. 이렇게 하려면 다음 SQL 함수를 실행합니다.
SELECT * FROM google_db_advisor_recommend_indexes();
분석이 완료되면 AlloyDB가 권장되는 색인에 대한 설명 및 예상 스토리지 요구사항이 포함된 테이블 형식의 보고서를 표시합니다. 분석으로 권장할 새 색인이 발견되지 않으면 뷰에 행이 포함되지 않습니다.
이 명령어를 실행하는 PostgreSQL 사용자 역할은 표시되는 권장사항에 영향을 줄 수 있습니다. 이 쿼리를 postgres
또는 alloydbsuperuser
역할이 있는 다른 사용자가 실행하면 AlloyDB에 색인 어드바이저의 현재 권장사항이 모두 표시됩니다. 그렇지 않으면 AlloyDB는 현재 데이터베이스 사용자가 실행한 쿼리와 관련된 색인 권장사항만 표시합니다.
색인 자문 권장사항 적용
google_db_advisor_recommended_indexes
뷰의 index
열에는 각 행에서 권장되는 색인을 생성하기 위한 완전한 PostgreSQL CREATE INDEX
DDL 문이 포함됩니다.
해당 행의 권장사항을 적용하려면 표시된 대로 정확하게 해당 DDL 문을 실행합니다. 여기에는 클립보드에 복사하고 psql
프롬프트에 붙여넣는 과정이 포함됩니다.
예를 들어 이전 섹션에 설명된 쿼리를 사용해서 수동으로 분석을 실행하여 다음 결과가 발생했다고 가정해 보세요.
index | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
CREATE INDEX ON "School"."Students"("age") | 3
(1 row)
이 보고서에는 School
스키마의 Students
테이블에서 age
열에 새 단일 열 색인을 추가하는 단일 권장사항이 포함되어 있습니다. 이 조언을 적용하려면 보고서 내에 표시된 대로 정확하게 DDL 쿼리를 입력합니다.
CREATE INDEX ON "School"."Students"("age");
색인 자문의 추적 쿼리 보기
google_db_advisor_workload_statements
뷰에는 색인 자문이 추적한 모든 쿼리 목록과 다음 측정항목과 같은 각 항목의 중요 메타데이터가 포함됩니다.
- 인스턴스가 이 쿼리를 실행한 횟수
- 인스턴스가 이러한 쿼리를 처리하는 데 걸린 총 시간
- 이러한 쿼리를 실행하는 데이터베이스 사용자의 ID
색인 자문의 추적 쿼리 지우기
추적 쿼리를 지워서 인스턴스에서 색인 자문의 동작을 재설정할 수 있습니다. 이렇게 하려면 다음 SQL 함수를 실행합니다.
SELECT google_db_advisor_reset();
AlloyDB는 색인 자문의 추적된 쿼리 모음을 즉시 비웁니다.
색인 자문 구성
색인 자문은 기본 설정을 사용해서 대부분의 사용 사례에 작동하도록 설계되었지만 여러 데이터베이스 플래그를 설정하여 동작을 미세 조정할 수 있습니다. 자세한 내용은 색인 도우미 플래그를 참고하세요.