Använda indexrekommendationer som skapats av indexjustering i Azure Database for PostgreSQL – flexibel server
Indexjusteringen bevarar rekommendationerna i en uppsättning tabeller som finns under intelligentperformance
schemat i azure_sys
databasen.
För närvarande kan den informationen läsas med hjälp av Azure Portal sidversion för det här ändamålet eller genom att köra frågor för att hämta data från två vyer som är tillgängliga i intelligent performance
azure_sys
databasen.
Använda indexrekommendationer via Azure Portal
Logga in på Azure Portal och välj din flexibla Serverinstans för Azure Database for PostgreSQL.
Välj Indexjustering i avsnittet Intelligent prestanda på menyn.
Om funktionen är aktiverad men inga rekommendationer har skapats ännu ser skärmen ut så här:
Om funktionen för närvarande är inaktiverad och den aldrig har gett rekommendationer tidigare ser skärmen ut så här:
Om funktionen är aktiverad och inga rekommendationer har skapats ännu ser skärmen ut så här:
Om funktionen är inaktiverad men den någonsin har skapat rekommendationer ser skärmen ut så här:
Om det finns rekommendationer väljer du i sammanfattningen Visa indexrekommendationer för att få åtkomst till den fullständiga listan:
Listan visar alla tillgängliga rekommendationer med viss information för var och en av dem. Som standard sorteras listan efter Senast rekommenderad i fallande ordning, med de senaste rekommendationerna högst upp. Du kan dock sortera efter andra kolumner och använda filtreringsrutan för att minska listan med objekt som visas för de objekt vars databas, schema eller tabellnamn innehåller den text som tillhandahålls:
Om du vill se ytterligare information om en specifik rekommendation väljer du namnet på rekommendationen och fönstret Indexrekommendationsinformation öppnas till höger på skärmen för att visa all tillgänglig information om rekommendationen:
Använda indexrekommendationer via vyer som är tillgängliga i azure_sys databas
- Anslut till databasen som
azure_sys
är tillgänglig på servern med valfri roll som har behörighet att ansluta till instansen. Medlemmar ipublic
rollen kan läsa från dessa vyer. - Kör frågor i
sessions
vyn för att hämta information om rekommendationssessioner. - Kör frågor i
recommendations
vyn för att hämta rekommendationerna från indexjustering för CREATE INDEX och DROP INDEX.
Vyer
Vyer i azure_sys
databasen är ett bekvämt sätt att komma åt och hämta indexrekommendationer som genereras av indexjustering. Mer specifikt innehåller vyerna createindexrecommendations
och dropindexrecommendations
detaljerad information om rekommendationer för CREATE INDEX respektive DROP INDEX. Dessa vyer exponerar data som sessions-ID, databasnamn, typ av rådgivare, start- och stopptider för justeringssessionen, rekommendations-ID, rekommendationstyp, orsak till rekommendationen och annan relevant information. Genom att fråga dessa vyer kan användarna enkelt komma åt och analysera indexrekommendationerna som skapas genom indexjustering.
intelligentperformance.sessions
Vyn sessions
visar all information för alla indexjusteringssessioner.
kolumnnamn | datatyp | beskrivning |
---|---|---|
session_id | uuid | Globalt unik identifierare tilldelad till varje ny justeringssession som initieras. |
database_name | varchar(64) | Namnet på databasen i vars kontext indexjusteringssessionen kördes. |
session_type | intelligentperformance.recommendation_type | Anger vilka typer av rekommendationer som indexjusteringssessionen kan ge. Möjliga värden är: CreateIndex , DropIndex . Sessioner av CreateIndex typen kan ge rekommendationer av CreateIndex typen. Sessioner av DropIndex typen kan ge rekommendationer av DropIndex eller ReIndex typer. |
run_type | intelligentperformance.recommendation_run_type | Anger hur sessionen initierades. Möjliga värden är: Scheduled . Sessioner som körs automatiskt enligt värdet index_tuning.analysis_interval för , tilldelas en körningstyp av Scheduled . |
tillstånd | intelligentperformance.recommendation_state | Anger sessionens aktuella tillstånd. Möjliga värden är: Error , Success , InProgress . Sessioner vars körning misslyckades anges som Error . Sessioner som slutförde körningen korrekt, oavsett om de genererade rekommendationer eller inte, anges som Success . Sessioner som fortfarande körs anges som InProgress . |
start_time | tidsstämpel utan tidszon | Tidsstämpel där justeringssessionen som producerade den här rekommendationen startades. |
stop_time | tidsstämpel utan tidszon | Tidsstämpel där justeringssessionen som producerade den här rekommendationen startades. NULL om sessionen pågår eller avbröts på grund av ett fel. |
recommendations_count | integer | Totalt antal rekommendationer som tagits fram i den här sessionen. |
intelligentperformance.recommendations
Vyn recommendations
visar all information för alla rekommendationer som genereras för alla justeringssessioner vars data fortfarande är tillgängliga i de underliggande tabellerna.
kolumnnamn | datatyp | beskrivning |
---|---|---|
recommendation_id | integer | Nummer som unikt identifierar en rekommendation på hela servern. |
last_known_session_id | uuid | Varje indexjusteringssession tilldelas en globalt unik identifierare. Värdet i den här kolumnen representerar värdet för den session som senast skapade den här rekommendationen. |
database_name | varchar(64) | Namnet på databasen i vars kontext rekommendationen skapades. |
recommendation_type | intelligentperformance.recommendation_type | Anger vilken typ av rekommendation som har skapats. Möjliga värden är: CreateIndex , DropIndex , ReIndex . |
initial_recommended_time | tidsstämpel utan tidszon | Tidsstämpel där justeringssessionen som producerade den här rekommendationen startades. |
last_recommended_time | tidsstämpel utan tidszon | Tidsstämpel där justeringssessionen som producerade den här rekommendationen startades. |
times_recommended | integer | Tidsstämpel där justeringssessionen som producerade den här rekommendationen startades. |
orsak | text | Orsak som motiverar varför den här rekommendationen har tagits fram. |
recommendation_context | json | Innehåller listan med frågeidentifierare för de frågor som påverkas av rekommendationen, vilken typ av index som rekommenderas, namnet på schemat och namnet på den tabell där indexet rekommenderas, indexkolumnerna, indexnamnet och den uppskattade storleken i byte för det rekommenderade indexet. |
Orsaker till att skapa indexrekommendationer
När indexjustering rekommenderar att ett index skapas lägger det till minst en av följande orsaker:
Anledning |
---|
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> |
Orsaker till rekommendationer för släppindex
När indexjustering identifierar eventuella index som har markerats som ogiltiga föreslår den att det tas bort med följande orsak:
The index is invalid and the recommended recovery method is to reindex.
Mer information om varför och när index markeras som ogiltiga finns i den officiella dokumentationen om REINDEX i PostgreSQL.
Orsaker till rekommendationer för släppindex
När indexjustering identifierar ett index som inte används i minst det antal dagar som anges i index_tuning.unused_min_period
föreslår den att det tas bort med följande orsak:
The index is unused in the past <days_unused> days.
När indexjustering identifierar duplicerade index överlever en av dubbletterna, och den föreslår att du släpper de återstående. Orsaken som anges har alltid följande starttext:
Duplicate of <surviving_duplicate>.
Följt av en annan text som förklarar orsaken till att var och en av dubbletterna har valts för släpp:
Anledning |
---|
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>". |
Om indexet inte bara är flyttbart på grund av duplicering, utan även används för minst det antal dagar som anges i index_tuning.unused_min_period
, läggs följande text till på orsaken:
Also, the index is unused in the past <days_unused> days.
Tillämpa indexrekommendationer
Indexrekommendationer innehåller SQL-instruktionen som du kan köra för att implementera rekommendationen.
Följande avsnitt visar hur den här instruktionen kan hämtas för en viss rekommendation.
När du har instruktionen kan du använda valfri PostgreSQL-klient för att ansluta till servern och tillämpa rekommendationen.
Hämta SQL-instruktion via indexjusteringssidan i Azure Portal
Logga in på Azure Portal och välj din flexibla Serverinstans för Azure Database for PostgreSQL.
Välj Indexjustering i avsnittet Intelligent prestanda på menyn.
Förutsatt att indexjustering redan har skapat rekommendationer väljer du sammanfattningen Visa indexrekommendationer för att få åtkomst till listan över tillgängliga rekommendationer.
Från listan med rekommendationer:
Relaterat innehåll
- Indexjustering i Azure Database for PostgreSQL – flexibel server.
- Konfigurera indexjustering i Azure Database for PostgreSQL – flexibel server.
- Övervaka prestanda med Query Store.
- Användningsscenarier för Query Store – Azure Database for PostgreSQL – flexibel server.
- Metodtips för Query Store – Azure Database for PostgreSQL – flexibel server.
- Query Performance Insight för Azure Database for PostgreSQL – flexibel server.