다음을 통해 공유


Azure Database for PostgreSQL - 유연한 서버의 인덱스 튜닝(미리 보기)으로 생성된 인덱스 권장 사항 사용

인덱스 튜닝은 azure_sys 데이터베이스의 intelligentperformance 스키마 아래에 있는 테이블 집합에 권장 사항을 유지합니다.

현재 이러한 목적을 위해 Azure Portal 페이지 빌드를 사용하거나, 쿼리를 실행하여 azure_sys 데이터베이스의 intelligent performance 내에서 사용할 수 있는 두 개의 뷰에서 데이터를 검색하는 방식으로 해당 정보를 읽을 수 있습니다.

Azure Portal을 통해 인덱스 권장 사항 사용

  1. Azure Portal에 로그인하고 Azure Database for PostgreSQL 유연한 서버 인스턴스를 선택합니다.

  2. 메뉴의 지능형 성능 섹션에서 인덱스 튜닝(미리 보기)을 선택합니다.

    • 기능을 사용하도록 설정했지만 권장 사항이 아직 생성되지 않은 경우 화면은 다음과 같습니다.

      기능이 사용하도록 설정되어 있지만 권장 사항이 없는 경우 '인덱스 튜닝(미리 보기)’ 페이지의 모습을 보여 주는 스크린샷.

    • 이 기능이 현재 사용하지 않도록 설정되어 있고 이전에 권장 사항을 생성하지 않은 경우 화면은 다음과 같습니다.

      기능이 사용하도록 설정되어 있고 권장 사항이 없는 경우 '인덱스 튜닝(미리 보기)’ 페이지의 모습을 보여 주는 스크린샷.

    • 기능이 사용하도록 설정되어 있고 권장 사항이 아직 생성되지 않은 경우 화면은 다음과 같습니다.

      기능이 사용하도록 설정되어 있고 권장 사항이 없는 경우 '인덱스 튜닝(미리 보기)’ 페이지의 모습을 보여 주는 스크린샷.

    • 기능이 사용하지 않도록 설정되어 있지만 권장 사항이 생성된 적이 있는 경우 화면은 다음과 같습니다.

      기능이 사용하지 않도록 설정되어 있고 권장 사항이 있는 경우 '인덱스 튜닝(미리 보기)’ 페이지의 모습을 보여 주는 스크린샷.

  3. 사용 가능한 권장 사항이 있는 경우 인덱스 권장 사항 보기 요약을 선택하여 전체 목록에 액세스합니다.

    권장 사항이 있는 경우 '인덱스 튜닝(미리 보기)’ 페이지의 모습과 전체 목록으로 이동하는 방법을 보여 주는 스크린샷.

  4. 목록에는 사용 가능한 모든 권장 사항이 표시되며 각 권장 사항에 대한 몇 가지 세부 정보가 표시됩니다. 기본적으로 목록은 마지막 권장 순서를 기준으로 내림차순으로 정렬되며 맨 위에 가장 최근의 권장 사항이 표시됩니다. 그러나 다른 열을 기준으로 정렬할 수 있으며 필터링 상자를 사용하여 데이터베이스, 스키마 또는 테이블 이름에 제공된 텍스트가 포함된 항목에 표시되는 항목 목록을 줄일 수 있습니다.

    몇 가지 권장 사항이 있는 '인덱스 권장 사항' 페이지의 모습을 보여 주는 스크린샷.

  5. 특정 권장 사항에 대한 추가 정보를 보려면 해당 권장 사항의 이름을 선택하고 인덱스 권장 사항 세부 정보 창이 화면 오른쪽에 열리면 권장 사항에 대한 사용 가능한 모든 세부 정보가 표시됩니다.

    특정 권장 사항 하나에 대한 '인덱스 권장 사항 세부 정보' 창의 모습을 보여 주는 스크린샷.

azure_sys 데이터베이스에서 사용할 수 있는 뷰를 통해 인덱스 권장 사항 사용

  1. 인스턴스에 연결할 수 있는 권한이 있는 역할을 사용하여 서버에서 사용할 수 있는 azure_sys 데이터베이스에 연결합니다. public 역할의 구성원은 이러한 보기에서 읽을 수 있습니다.
  2. createindexrecommendationsdropindexrecommendations 뷰에서 쿼리를 실행하여 CREATE INDEX 및 DROP INDEX 권장 사항에 대한 인덱스 튜닝으로 생성된 권장 사항을 검색합니다.

azure_sys 데이터베이스의 뷰를 활용하면 인덱스 튜닝으로 생성된 인덱스 권장 사항에 편리하게 액세스하고 이러한 항목을 검색할 수 있습니다. 특히, createindexrecommendationsdropindexrecommendations 뷰에는 각각 CREATE INDEX 및 DROP INDEX 권장 사항에 대한 자세한 정보가 포함되어 있습니다. 이러한 뷰에는 세션 ID, 데이터베이스 이름, 관리자 유형, 튜닝 세션의 시작 및 중지 시간, 권장 사항 ID, 권장 사항 유형, 권장 사항 이유 및 기타 관련 세부 정보와 같은 데이터가 표시됩니다. 사용자는 이러한 뷰를 쿼리하여 인덱스 튜닝으로 생성된 인덱스 권장 사항에 쉽게 액세스하고 분석할 수 있습니다.

intelligentperformace.createindexrecommendations

createindexrecommendations 뷰는 해당 데이터를 기본 테이블에서 계속 사용할 수 있는 튜닝 세션에서 생성된 모든 CREATE INDEX 권장 사항에 대한 모든 세부 정보를 표시합니다.

열 이름 데이터 형식 설명
session_id char(36) 전역적으로 고유 식별자는 모든 새 튜닝 세션에 할당됩니다. 튜닝 세션에서 CREATE INDEX 및 DROP INDEX 권장 사항을 생성하는 경우 이 뷰에는 행이 있고 인덱스 삭제 권장 사항 뷰에는 동일한 값이 있습니다.
database_name varchar(64) 컨텍스트에서 권장 사항을 생성한 데이터베이스의 이름입니다.
advisor_type varchar(64) 상수 값 createindex입니다.
start_time timestamp 이 권장 사항을 생성한 튜닝 세션이 시작된 타임스탬프입니다.
stop_time timestamp 이 권장 사항을 생성한 튜닝 세션이 시작된 타임스탬프입니다. 세션이 진행 중이거나 일부 오류로 인해 중단된 경우 NULL입니다.
session_context json 분석된 워크로드의 세부 정보를 설명하는 컨텍스트입니다. 특히, 이 특정 세션의 대상이었던 시간 창, catch된 예외 목록(있는 경우), 분석된 워크로드의 총 쿼리 수 및 검사된 쿼리 식별자 목록을 정의합니다.
state pg_recommendation_state_type 세션이 실패했는지, 성공적으로 완료되었는지 또는 아직 진행 중인지를 나타냅니다. Error, Success 또는 InProgress.
recommendation_id smallest 단조로 증가하는 정수(0부터 시작)는 튜닝 세션의 컨텍스트 내에서 생성된 각 권장 사항에 할당됩니다. 모든 새 튜닝 세션에 대해 0으로 다시 설정합니다.
recommendation_type varchar(64) 상수 값 CreateIndex입니다.
reason varchar(1024) 이 권장 사항이 생성된 이유를 정당화하는 이유입니다. 일반적으로 “{queryId} 쿼리의 {Join On / Equal Predicate / Non-Equal Predicate / Group By / Order By} 절에 {columnName} 열이 나타납니다.”와 같이 연결된 하나 이상의 문자열이 사용됩니다.
recommendation_context json 권장 사항의 영향을 받는 쿼리에 대한 쿼리 식별자 목록, 권장되는 인덱스 유형, 스키마 이름 및 인덱스가 권장되는 테이블의 이름, 인덱스 열, 인덱스 이름 및 권장 인덱스의 예상 크기(바이트)를 포함합니다.

intelligentperformace.dropindexrecommendations

dropindexrecommendations는 해당 데이터를 기본 테이블에서 계속 사용할 수 있는 튜닝 세션에서 생성된 모든 DROP INDEX 권장 사항에 대한 모든 세부 정보를 표시합니다.

열 이름 데이터 형식 설명
session_id uuid 전역적으로 고유 식별자는 모든 새 튜닝 세션에 할당됩니다. 튜닝 세션에서 CREATE INDEX 및 DROP INDEX 권장 사항을 생성하는 경우 이 뷰에는 행이 있고 인덱스 만들기 권장 사항 뷰에는 동일한 값이 있습니다.
database_name text 권장 사항이 생성된 컨텍스트가 있는 데이터베이스의 이름입니다.
start_time timestamp 이 권장 사항을 생성한 튜닝 세션이 시작된 타임스탬프입니다.
end_time timestamp 이 권장 사항을 생성한 튜닝 세션이 시작된 타임스탬프입니다. 세션이 진행 중이거나 일부 오류로 인해 중단된 경우 NULL입니다.
message text 분석된 워크로드의 세부 정보를 설명하는 컨텍스트입니다. 특히, 이 특정 세션의 대상이었던 시간 창, catch된 예외 목록(있는 경우), 분석된 워크로드의 총 쿼리 수 및 검사된 쿼리 식별자 목록을 정의합니다.
recommendation_id int 단조로 증가하는 정수(10000부터 시작)는 모든 튜닝 세션의 컨텍스트 내에서 생성된 각 권장 사항에 할당됩니다. 모든 새 튜닝 세션에 대해 0으로 다시 설정하지 않습니다.
schema_name text 인덱스가 있는 스키마의 이름입니다.
table_name text 인덱스가 만들어진 테이블의 이름입니다.
index_type text pg_am에 의해 노출되는 액세스 메서드의 이름으로 설명된 인덱스 형식입니다.
index_name text 인덱스의 이름입니다.
column_list text 인덱스 키를 구성하는 열의 이름입니다.
command text 권장된 작업을 구현하는 DROP INDEX 문입니다.
혜택 double precision 예상 혜택입니다.
index_size double precision 인덱스의 예상 크기입니다.
reason text 이 권장 사항이 생성된 이유를 정당화하는 이유입니다. 일반적으로 중복 인덱스의 경우 "{indexName}의 중복"이라는 메시지를 보고합니다. 이와 동일한 인덱스 "{IndexName}"은(는) {is a Primary Key, while / is a unique index, while / is a constraint, while / is a valid index, while / has been chosen as replica identity, while / was used to cluster the table, while / has a smaller estimated size compared to / has more tuples compared to / has more index scans compared to / has been fetched more times compared to / has been read more times compared to} {duplicateIndexName}"입니다. 선택적으로 인덱스가 중복으로 식별되지 않고 index_tuning.unused_min_period일 이상 사용되지 않은 것으로 확인되면 "또한 지난 {days}일 동안 인덱스를 사용하지 않았습니다."라는 메시지가 이전 항목 중 하나에 추가됩니다.

사용하지 않는 인덱스의 경우 메시지는 "지난 {days}일 동안 인덱스를 사용하지 않았습니다."와 같습니다.

인덱스 권장 사항 적용

인덱스 권장 사항에는 권장 사항을 구현하기 위해 실행할 수 있는 SQL 문이 포함되어 있습니다.

다음 섹션에서는 특정 권장 사항에 대해 이 문을 가져오는 방법을 보여 줍니다.

문이 있으면 원하는 PostgreSQL 클라이언트를 사용하여 서버에 연결하고 권장 사항을 적용할 수 있습니다.

Azure Portal에서 인덱스 튜닝(미리 보기) 페이지를 통해 SQL 문 가져오기

  1. Azure Portal에 로그인하고 Azure Database for PostgreSQL 유연한 서버 인스턴스를 선택합니다.

  2. 메뉴의 지능형 성능 섹션에서 인덱스 튜닝(미리 보기)을 선택합니다.

  3. 인덱스 튜닝이 이미 권장 사항을 생성했다고 가정하고 인덱스 권장 사항 보기 요약을 선택하여 사용 가능한 권장 사항 목록에 액세스합니다.

    권장 사항이 있는 경우 '인덱스 튜닝(미리 보기)’ 페이지의 모습과 전체 목록으로 이동하는 방법을 보여 주는 스크린샷.

  4. 권장 사항 목록에서 다음 중 하나를 수행합니다.

    • SQL 문을 가져올 권장 사항의 오른쪽에 있는 줄임표를 선택하고 SQL 스크립트 복사를 선택합니다.

      '인덱스 권장 사항' 페이지에서 SQL 문을 복사하는 방법을 보여 주는 스크린샷.

    • 또는 권장 사항의 이름을 선택하여 인덱스 권장 사항 세부 정보를 표시하고 SQL 스크립트 텍스트 상자에서 클립보드로 복사 아이콘을 선택하여 SQL 문을 복사합니다.

      '인덱스 권장 사항 세부 정보' 페이지에서 SQL 문을 복사하는 방법을 보여 주는 스크린샷.