Korzystanie z zaleceń dotyczących indeksów generowanych przez dostrajanie indeksów w usłudze Azure Database for PostgreSQL — serwer elastyczny
Dostrajanie indeksu utrwala zalecenia, które wykonuje w zestawie tabel znajdujących się w intelligentperformance
schemacie azure_sys
w bazie danych.
Obecnie te informacje można odczytywać przy użyciu kompilacji strony witryny Azure Portal w tym celu lub wykonując zapytania w celu pobrania danych z dwóch widoków dostępnych wewnątrz intelligent performance
azure_sys
bazy danych.
Korzystanie z rekomendacji dotyczących indeksu w witrynie Azure Portal
Zaloguj się do witryny Azure Portal i wybierz wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.
Wybierz pozycję Dostrajanie indeksu w sekcji Inteligentna wydajność w menu.
Jeśli funkcja jest włączona, ale nie utworzono jeszcze żadnych zaleceń, ekran wygląda następująco:
Jeśli funkcja jest obecnie wyłączona i nigdy nie wygenerowała zaleceń w przeszłości, ekran wygląda następująco:
Jeśli funkcja jest włączona i nie są jeszcze generowane żadne zalecenia, ekran wygląda następująco:
Jeśli funkcja jest wyłączona, ale kiedykolwiek wygenerowała zalecenia, ekran wygląda następująco:
Jeśli są dostępne zalecenia, wybierz podsumowanie Wyświetl zalecenia dotyczące indeksu, aby uzyskać dostęp do pełnej listy:
Lista zawiera wszystkie dostępne rekomendacje z pewnymi szczegółami dla każdego z nich. Domyślnie lista jest sortowana według opcji Ostatnia zalecana w kolejności malejącej, pokazując najnowsze zalecenia u góry. Można jednak sortować według dowolnej innej kolumny i użyć pola filtrowania, aby zmniejszyć listę elementów wyświetlanych dla tych elementów, których baza danych, schemat lub nazwy tabel zawierają podany tekst:
Aby wyświetlić więcej informacji na temat dowolnego konkretnego zalecenia, wybierz nazwę tego zalecenia, a okienko Szczegóły rekomendacji indeksu zostanie otwarte po prawej stronie ekranu, aby wyświetlić wszystkie dostępne szczegóły dotyczące zalecenia:
Korzystanie z rekomendacji dotyczących indeksu za pośrednictwem widoków dostępnych w bazie danych azure_sys
- Połącz się z bazą
azure_sys
danych dostępną na serwerze z dowolną rolą, która ma uprawnienia do nawiązywania połączenia z wystąpieniem.public
Członkowie roli mogą odczytywać z tych widoków. - Wykonaj zapytania w widoku,
sessions
aby pobrać szczegółowe informacje o sesjach rekomendacji. - Wykonywanie zapytań w widoku w
recommendations
celu pobrania zaleceń generowanych przez dostrajanie indeksu dla polecenia CREATE INDEX i DROP INDEX.
Widoki
Widoki w azure_sys
bazie danych zapewniają wygodny sposób uzyskiwania dostępu do zaleceń dotyczących indeksów generowanych przez dostrajanie indeksów i pobierania ich. W szczególności createindexrecommendations
widoki i dropindexrecommendations
zawierają szczegółowe informacje o zaleceniach CREATE INDEX i DROP INDEX, odpowiednio. Te widoki uwidaczniają dane, takie jak identyfikator sesji, nazwa bazy danych, typ klasyfikatora, czas uruchamiania i zatrzymywania sesji dostrajania, identyfikator rekomendacji, typ rekomendacji, przyczyna rekomendacji i inne istotne szczegóły. Wykonując zapytania dotyczące tych widoków, użytkownicy mogą łatwo uzyskiwać dostęp do zaleceń dotyczących indeksów generowanych przez dostrajanie indeksów i analizować je.
intelligentperformance.sessions
Widok sessions
uwidacznia wszystkie szczegóły wszystkich sesji dostrajania indeksu.
nazwa kolumny | typ danych | opis |
---|---|---|
session_id | uuid | Globalnie unikatowy identyfikator przypisany do każdej nowej sesji dostrajania zainicjowanej. |
database_name | varchar(64) | Nazwa bazy danych, w której kontekst została wykonana sesja dostrajania indeksu. |
session_type | intelligentperformance.recommendation_type | Wskazuje typy zaleceń, które może wygenerować ta sesja dostrajania indeksu. Możliwe wartości to: CreateIndex , DropIndex . CreateIndex Sesje typu mogą generować rekomendacje CreateIndex typu. DropIndex Sesje typu mogą generować zalecenia DropIndex lub ReIndex typy. |
run_type | intelligentperformance.recommendation_run_type | Wskazuje sposób inicjowania tej sesji. Możliwe wartości to: Scheduled . Sesje wykonywane automatycznie zgodnie z wartością index_tuning.analysis_interval , są przypisywane typ Scheduled przebiegu . |
stan | intelligentperformance.recommendation_state | Wskazuje bieżący stan sesji. Możliwe wartości to: Error , , InProgress Success . Sesje, których wykonanie nie powiodło się, jest ustawione jako Error . Sesje, które zakończyły wykonywanie prawidłowo, niezależnie od tego, czy wygenerowały zalecenia, są ustawione jako Success . Sesje, które nadal są wykonywane, są ustawione jako InProgress . |
start_time | znacznik czasu bez strefy czasowej | Sygnatura czasowa, w której uruchomiono sesję dostrajania, która wyprodukowała to zalecenie. |
stop_time | znacznik czasu bez strefy czasowej | Sygnatura czasowa, w której uruchomiono sesję dostrajania, która wyprodukowała to zalecenie. Wartość NULL, jeśli sesja jest w toku lub została przerwana z powodu awarii. |
recommendations_count | integer | Łączna liczba zaleceń utworzonych w tej sesji. |
intelligentperformance.recommendations
Widok recommendations
uwidacznia wszystkie szczegóły wszystkich zaleceń wygenerowanych w każdej sesji dostrajania, której dane są nadal dostępne w tabelach bazowych.
nazwa kolumny | typ danych | opis |
---|---|---|
recommendation_id | integer | Numer, który jednoznacznie identyfikuje zalecenie na całym serwerze. |
last_known_session_id | uuid | Każda sesja dostrajania indeksu ma przypisany unikatowy identyfikator globalny. Wartość w tej kolumnie reprezentuje sesję, która ostatnio wygenerowała to zalecenie. |
database_name | varchar(64) | Nazwa bazy danych, w której kontekst został wygenerowany zalecenie. |
recommendation_type | intelligentperformance.recommendation_type | Wskazuje typ wygenerowanej rekomendacji. Możliwe wartości to: CreateIndex , , ReIndex DropIndex . |
initial_recommended_time | znacznik czasu bez strefy czasowej | Sygnatura czasowa, w której uruchomiono sesję dostrajania, która wyprodukowała to zalecenie. |
last_recommended_time | znacznik czasu bez strefy czasowej | Sygnatura czasowa, w której uruchomiono sesję dostrajania, która wyprodukowała to zalecenie. |
times_recommended | integer | Sygnatura czasowa, w której uruchomiono sesję dostrajania, która wyprodukowała to zalecenie. |
reason | text | Powód uzasadniający, dlaczego to zalecenie zostało wygenerowane. |
recommendation_context | json | Zawiera listę identyfikatorów zapytań dla zapytań, których dotyczy zalecenie, zalecany typ indeksu, nazwę schematu i nazwę tabeli, na której jest zalecany indeks, kolumny indeksu, nazwę indeksu i szacowany rozmiar w bajtach zalecanego indeksu. |
Przyczyny tworzenia rekomendacji dotyczących indeksów
Gdy dostrajanie indeksu zaleca utworzenie indeksu, powoduje dodanie co najmniej jednego z następujących powodów:
Przyczyna |
---|
Column <column> appear in Join On clause(s) in query <queryId> |
Column <column> appear in Equal Predicate clause(s) in query <queryId> |
Column <column> appear in Non-Equal Predicate clause(s) in query <queryId> |
Column <column> appear in Group By clause(s) in query <queryId> |
Column <column> appear in Order By clause(s) in query <queryId> |
Przyczyny porzucania zaleceń dotyczących indeksu
Gdy dostrajanie indeksu identyfikuje wszystkie indeksy oznaczone jako nieprawidłowe, proponuje usunięcie go z następującym powodem:
The index is invalid and the recommended recovery method is to reindex.
Aby dowiedzieć się więcej o tym, dlaczego i kiedy indeksy są oznaczone jako nieprawidłowe, zapoznaj się z oficjalną dokumentacją REINDEX w usłudze PostgreSQL.
Przyczyny porzucania zaleceń dotyczących indeksu
Gdy dostrajanie indeksu wykryje indeks, który jest nieużywany dla co najmniej liczby dni ustawionych w index_tuning.unused_min_period
elemecie , proponuje usunięcie go z następującym powodem:
The index is unused in the past <days_unused> days.
Gdy dostrajanie indeksu wykrywa zduplikowane indeksy, jedna z duplikatów przetrwa i proponuje usunięcie pozostałych indeksów. Podany powód zawsze zawiera następujący tekst początkowy:
Duplicate of <surviving_duplicate>.
Następnie inny tekst, który wyjaśnia przyczynę wybrania każdego z duplikatów do upuszczania:
Przyczyna |
---|
The equivalent index "<surviving_duplicate>" is a Primary key, while "<droppable_duplicate>" is not. |
The equivalent index "<surviving_duplicate>" is a unique index, while "<droppable_duplicate>" is not. |
The equivalent index "<surviving_duplicate>" is a constraint, while "<droppable_duplicate>" is not. |
The equivalent index "<surviving_duplicate>" is a valid index, while "<droppable_duplicate>" is not. |
The equivalent index "<surviving_duplicate>" has been chosen as replica identity, while "<droppable_duplicate>" is not. |
The equivalent index "<surviving_duplicate>" was used to cluster the table, while "<droppable_duplicate>" was not. |
The equivalent index "<surviving_duplicate>" has a smaller estimated size compared to "<droppable_duplicate>". |
The equivalent index "<surviving_duplicate>" has more tuples compared to "<droppable_duplicate>". |
The equivalent index "<surviving_duplicate>" has more index scans compared to "<droppable_duplicate>". |
The equivalent index "<surviving_duplicate>" has been fetched more times compared to "<droppable_duplicate>". |
The equivalent index "<surviving_duplicate>" has been read more times compared to "<droppable_duplicate>". |
The equivalent index "<surviving_duplicate>" has a shorter length compared to "<droppable_duplicate>". |
The equivalent index "<surviving_duplicate>" has a smaller oid compared to "<droppable_duplicate>". |
Jeśli indeks nie tylko jest wymienny ze względu na duplikację, ale także jest nieużywany dla co najmniej liczby dni ustawionych w index_tuning.unused_min_period
elemencie , następujący tekst jest dołączany do przyczyny:
Also, the index is unused in the past <days_unused> days.
Stosowanie zaleceń dotyczących indeksu
Zalecenia dotyczące indeksu zawierają instrukcję SQL, którą można wykonać, aby zaimplementować zalecenie.
W poniższych sekcjach pokazano, jak można uzyskać tę instrukcję dla konkretnej rekomendacji.
Po utworzeniu instrukcji możesz użyć dowolnego klienta postgreSQL preferencji, aby nawiązać połączenie z serwerem i zastosować zalecenie.
Uzyskiwanie instrukcji SQL za pośrednictwem strony dostrajania indeksu w witrynie Azure Portal
Zaloguj się do witryny Azure Portal i wybierz wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.
Wybierz pozycję Dostrajanie indeksu w sekcji Inteligentna wydajność w menu.
Przy założeniu, że dostrajanie indeksu wygenerowało już zalecenia, wybierz podsumowanie Wyświetl zalecenia dotyczące indeksu, aby uzyskać dostęp do listy dostępnych zaleceń.
Z listy zaleceń:
Wybierz wielokropek z prawej strony zalecenia, dla którego chcesz uzyskać instrukcję SQL, a następnie wybierz pozycję Kopiuj skrypt SQL.
Możesz też wybrać nazwę zalecenia, aby wyświetlić szczegóły rekomendacji indeksu, a następnie wybrać ikonę kopiowania do schowka w polu tekstowym skryptu SQL, aby skopiować instrukcję SQL.
Powiązana zawartość
- Dostrajanie indeksu w usłudze Azure Database for PostgreSQL — serwer elastyczny.
- Konfigurowanie dostrajania indeksu w usłudze Azure Database for PostgreSQL — serwer elastyczny.
- Monitorowanie wydajności za pomocą magazynu zapytań.
- Scenariusze użycia magazynu zapytań — Azure Database for PostgreSQL — serwer elastyczny.
- Najlepsze rozwiązania dotyczące magazynu zapytań — Azure Database for PostgreSQL — serwer elastyczny.
- Szczegółowe informacje o wydajności zapytań dla usługi Azure Database for PostgreSQL — serwer elastyczny.