Azure Database for PostgreSQL - 유연한 서버의 인덱스 튜닝(미리 보기)으로 생성된 인덱스 권장 사항 사용
인덱스 튜닝은 azure_sys
데이터베이스의 intelligentperformance
스키마 아래에 있는 테이블 집합에 권장 사항을 유지합니다.
현재 이러한 목적을 위해 Azure Portal 페이지 빌드를 사용하거나, 쿼리를 실행하여 azure_sys
데이터베이스의 intelligent performance
내에서 사용할 수 있는 두 개의 뷰에서 데이터를 검색하는 방식으로 해당 정보를 읽을 수 있습니다.
Azure Portal을 통해 인덱스 권장 사항 사용
Azure Portal에 로그인하고 Azure Database for PostgreSQL 유연한 서버 인스턴스를 선택합니다.
메뉴의 지능형 성능 섹션에서 인덱스 튜닝(미리 보기)을 선택합니다.
사용 가능한 권장 사항이 있는 경우 인덱스 권장 사항 보기 요약을 선택하여 전체 목록에 액세스합니다.
목록에는 사용 가능한 모든 권장 사항이 표시되며 각 권장 사항에 대한 몇 가지 세부 정보가 표시됩니다. 기본적으로 목록은 마지막 권장 순서를 기준으로 내림차순으로 정렬되며 맨 위에 가장 최근의 권장 사항이 표시됩니다. 그러나 다른 열을 기준으로 정렬할 수 있으며 필터링 상자를 사용하여 데이터베이스, 스키마 또는 테이블 이름에 제공된 텍스트가 포함된 항목에 표시되는 항목 목록을 줄일 수 있습니다.
특정 권장 사항에 대한 추가 정보를 보려면 해당 권장 사항의 이름을 선택하고 인덱스 권장 사항 세부 정보 창이 화면 오른쪽에 열리면 권장 사항에 대한 사용 가능한 모든 세부 정보가 표시됩니다.
azure_sys 데이터베이스에서 사용할 수 있는 뷰를 통해 인덱스 권장 사항 사용
- 인스턴스에 연결할 수 있는 권한이 있는 역할을 사용하여 서버에서 사용할 수 있는
azure_sys
데이터베이스에 연결합니다.public
역할의 구성원은 이러한 보기에서 읽을 수 있습니다. createindexrecommendations
및dropindexrecommendations
뷰에서 쿼리를 실행하여 CREATE INDEX 및 DROP INDEX 권장 사항에 대한 인덱스 튜닝으로 생성된 권장 사항을 검색합니다.
뷰
azure_sys
데이터베이스의 뷰를 활용하면 인덱스 튜닝으로 생성된 인덱스 권장 사항에 편리하게 액세스하고 이러한 항목을 검색할 수 있습니다. 특히, createindexrecommendations
및 dropindexrecommendations
뷰에는 각각 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 문 가져오기
Azure Portal에 로그인하고 Azure Database for PostgreSQL 유연한 서버 인스턴스를 선택합니다.
메뉴의 지능형 성능 섹션에서 인덱스 튜닝(미리 보기)을 선택합니다.
인덱스 튜닝이 이미 권장 사항을 생성했다고 가정하고 인덱스 권장 사항 보기 요약을 선택하여 사용 가능한 권장 사항 목록에 액세스합니다.
권장 사항 목록에서 다음 중 하나를 수행합니다.
관련 콘텐츠
- Azure Database for PostgreSQL의 서버 - 유연한 서버의 인덱스 튜닝(미리 보기)
- Azure Database for PostgreSQL의 서버 - 유연한 서버에서 인덱스 튜닝 구성(미리 보기)
- 쿼리 저장소를 사용하여 성능 모니터링
- Azure Database for PostgreSQL 유연한 서버 쿼리 저장소의 사용 시나리오
- 쿼리 저장소에 대한 모범 사례 - Azure Database for PostgreSQL - 유연한 서버
- Azure Database for PostgreSQL- 유연한 서버에 대한 쿼리 성능 분석