Udostępnij za pośrednictwem


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

  1. Zaloguj się do witryny Azure Portal i wybierz wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.

  2. 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:

      Zrzut ekranu przedstawiający aspekt strony

    • Jeśli funkcja jest obecnie wyłączona i nigdy nie wygenerowała zaleceń w przeszłości, ekran wygląda następująco:

      Zrzut ekranu przedstawiający aspekt strony

    • Jeśli funkcja jest włączona i nie są jeszcze generowane żadne zalecenia, ekran wygląda następująco:

      Zrzut ekranu przedstawiający aspekt strony

    • Jeśli funkcja jest wyłączona, ale kiedykolwiek wygenerowała zalecenia, ekran wygląda następująco:

      Zrzut ekranu przedstawiający aspekt strony

  3. Jeśli są dostępne zalecenia, wybierz podsumowanie Wyświetl zalecenia dotyczące indeksu, aby uzyskać dostęp do pełnej listy:

    Zrzut ekranu przedstawiający aspekt strony

  4. 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:

    Zrzut ekranu przedstawiający aspekt strony

  5. 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:

    Zrzut ekranu przedstawiający aspekt okienka

Korzystanie z rekomendacji dotyczących indeksu za pośrednictwem widoków dostępnych w bazie danych azure_sys

  1. 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.
  2. Wykonaj zapytania w widoku, sessions aby pobrać szczegółowe informacje o sesjach rekomendacji.
  3. 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 Scheduledprzebiegu .
stan intelligentperformance.recommendation_state Wskazuje bieżący stan sesji. Możliwe wartości to: Error, , InProgressSuccess. 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, , ReIndexDropIndex.
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_periodelemecie , 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_periodelemencie , 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

  1. Zaloguj się do witryny Azure Portal i wybierz wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.

  2. Wybierz pozycję Dostrajanie indeksu w sekcji Inteligentna wydajność w menu.

  3. 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ń.

    Zrzut ekranu przedstawiający aspekt strony

  4. Z listy zaleceń:

    • Wybierz wielokropek z prawej strony zalecenia, dla którego chcesz uzyskać instrukcję SQL, a następnie wybierz pozycję Kopiuj skrypt SQL.

      Zrzut ekranu przedstawiający sposób kopiowania instrukcji SQL ze strony

    • 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.

      Zrzut ekranu przedstawiający sposób kopiowania instrukcji SQL ze strony