Använd kommandot az postgres flexible-server autonomous-tuning list-index-recommendations för att lista indexrekommendationer som autonom justering genererar för en befintlig server.
Använd det här kommandot om du vill visa en lista över alla CREATE INDEX rekommendationer:
az postgres flexible-server autonomous-tuning list-index-recommendations \
--resource-group <resource_group> \
--server-name <server> \
--recommendation-type createindex
Kommandot returnerar all information om de CREATE INDEX rekommendationer som autonom justering genererar och visar utdata som liknar följande exempel:
[
{
"analyzedWorkload": {
"endTime": "2026-01-27T14:40:18.788628+00:00",
"queryCount": 18,
"startTime": "2026-01-27T13:40:22.544654+00:00"
},
"currentState": "Active",
"details": {
"databaseName": "<database>",
"includedColumns": [
""
],
"indexColumns": [
"\"<tabe>\".\"<column>\""
],
"indexName": "<index>",
"indexType": "BTREE",
"schema": "<schema>",
"table": "<table>"
},
"estimatedImpact": [
{
"absoluteValue": 1.9296875,
"dimensionName": "IndexSize",
"queryId": null,
"unit": "MB"
},
{
"absoluteValue": 99.98674047373842,
"dimensionName": "QueryCostImprovement",
"queryId": -2000193826232128395,
"unit": "Percentage"
}
],
"id": "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<server>/tuningOptions/index/recommendations/<recommendation_id>",
"implementationDetails": {
"method": "SQL",
"script": "CREATE INDEX CONCURRENTLY \"<index>\" ON \"<schema>\".\"<table>\"(\"<column>\");"
},
"improvedQueryIds": [
-2000193826232128395
],
"initialRecommendedTime": "2026-01-27T14:40:19.707617+00:00",
"kind": "",
"lastRecommendedTime": "2026-01-27T14:40:19.707617+00:00",
"name": "CreateIndex_<database>_<schema>_<index>",
"recommendationReason": "Column \"<table>\".\"<column>\" appear in Equal Predicate clause(s) in query -2000193826232128395;",
"recommendationType": "CreateIndex",
"resourceGroup": "<resource_group>",
"systemData": null,
"timesRecommended": 1,
"type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/index"
},
{
.
.
.
}
]
Använd det här kommandot om du vill visa en lista över alla DROP INDEX rekommendationer:
az postgres flexible-server autonomous-tuning list-index-recommendations \
--resource-group <resource_group> \
--server-name <server> \
--recommendation-type dropindex
Kommandot returnerar all information om de DROP INDEX rekommendationer som autonom justering genererar och visar utdata som liknar följande exempel:
[
{
"analyzedWorkload": {
"endTime": "2026-01-27T19:02:47.522193+00:00",
"queryCount": 0,
"startTime": "2026-01-27T19:02:47.522193+00:00"
},
"currentState": "Active",
"details": {
"databaseName": "<database>",
"includedColumns": [
""
],
"indexColumns": [
"<column>"
],
"indexName": "<index>",
"indexType": "BTREE",
"schema": "<schema>",
"table": "<table>"
},
"estimatedImpact": [
{
"absoluteValue": 31.0,
"dimensionName": "Benefit",
"queryId": null,
"unit": "Percentage"
},
{
"absoluteValue": 0.0078125,
"dimensionName": "IndexSize",
"queryId": null,
"unit": "MB"
}
],
"id": "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<server>/tuningOptions/index/recommendations/recommendations/<recommendation_id>",
"implementationDetails": {
"method": "SQL",
"script": "DROP INDEX CONCURRENTLY \"public\".\"idx_dropindextable_c2\";"
},
"improvedQueryIds": null,
"initialRecommendedTime": "2026-01-27T19:02:47.556792+00:00",
"kind": "",
"lastRecommendedTime": "2026-01-27T19:02:47.556792+00:00",
"name": "DropIndex_<database>_<schema>_<index>",
"recommendationReason": "Duplicate of \"<index>\". The equivalent index \"<index>\" has a smaller oid compared to \"<index>\".",
"recommendationType": "DropIndex",
"resourceGroup": "<resource_group>",
"systemData": null,
"timesRecommended": 5,
"type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/index"
},
{
.
.
.
}
]
Använd det här kommandot om du vill visa en lista över alla REINDEX rekommendationer:
az postgres flexible-server autonomous-tuning list-index-recommendations \
--resource-group <resource_group> \
--server-name <server> \
--recommendation-type reindex
Kommandot returnerar all information om de REINDEX rekommendationer som autonom justering genererar och visar utdata som liknar följande exempel:
[
{
"analyzedWorkload": {
"endTime": "2026-01-27T19:02:47.522193+00:00",
"queryCount": 0,
"startTime": "2026-01-27T19:02:47.522193+00:00"
},
"currentState": "Active",
"details": {
"databaseName": "<database>",
"includedColumns": [
""
],
"indexColumns": [
"<column>"
],
"indexName": "<index>",
"indexType": "BTREE",
"schema": "<schema>",
"table": "<table>"
},
"estimatedImpact": [
{
"absoluteValue": 41.0,
"dimensionName": "Benefit",
"queryId": null,
"unit": "Percentage"
},
{
"absoluteValue": 0.0,
"dimensionName": "IndexSize",
"queryId": null,
"unit": "MB"
}
],
"id": "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<server>/tuningOptions/index/recommendations/recommendations/<recommendation_id>",
"implementationDetails": {
"method": "SQL",
"script": "REINDEX INDEX CONCURRENTLY \"<schema>\".\"<schema>\";"
},
"improvedQueryIds": null,
"initialRecommendedTime": "2026-01-27T15:26:37.647505+00:00",
"kind": "",
"lastRecommendedTime": "2026-01-27T19:26:43.297535+00:00",
"name": "ReIndex_<database>_<schema>_<index>",
"recommendationReason": "The index is invalid and the recommended recovery method is to reindex.",
"recommendationType": "ReIndex",
"resourceGroup": "<resource_group>",
"systemData": null,
"timesRecommended": 5,
"type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/index"
},
{
.
.
.
}
]
Använd det här kommandot om du vill visa en lista över alla ANALYZE rekommendationer:
az postgres flexible-server autonomous-tuning list-table-recommendations \
--resource-group <resource_group> \
--server-name <server> \
--recommendation-type analyzetable
Kommandot returnerar all information om de ANALYZE rekommendationer som autonom justering genererar och visar utdata som liknar följande exempel:
[
{
"analyzedWorkload": {
"endTime": "2026-01-27T19:02:47.522193+00:00",
"queryCount": 0,
"startTime": "2026-01-27T19:02:47.522193+00:00"
},
"currentState": null,
"details": {
"databaseName": "<database>",
"includedColumns": null,
"indexColumns": null,
"indexName": null,
"indexType": null,
"schema": "<schema>",
"table": "<table>"
},
"estimatedImpact": null,
"id": "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<server>/tuningOptions/index/recommendations/recommendations/<recommendation_id>",
"implementationDetails": {
"method": "SQL",
"script": "ANALYZE \"<schema>\".\"<table>\";"
},
"improvedQueryIds": [
1574410013562407420
],
"initialRecommendedTime": "2026-01-27T17:26:40.825994+00:00",
"kind": "",
"lastRecommendedTime": "2026-01-27T17:26:40.825994+00:00",
"name": "Analyze_<database>_<schema>_<table>",
"recommendationReason": "Table \"<schema>\".\"<table>\" has not been analyzed but is being used by queries: \"1574410013562407420\".",
"recommendationType": "Analyze",
"resourceGroup": "<resource_group>",
"systemData": null,
"timesRecommended": 1,
"type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/table"
},
{
.
.
.
}
]
Använd det här kommandot om du vill visa en lista över alla VACUUM rekommendationer:
az postgres flexible-server autonomous-tuning list-table-recommendations \
--resource-group <resource_group> \
--server-name <server> \
--recommendation-type vacuumtable
Kommandot returnerar all information om de VACUUM rekommendationer som autonom justering genererar och visar utdata som liknar följande exempel:
[
{
"analyzedWorkload": {
"endTime": "2026-01-27T17:26:40.102894+00:00",
"queryCount": 5,
"startTime": "2026-01-27T16:26:40.102895+00:00"
},
"currentState": null,
"details": {
"databaseName": "<database>",
"includedColumns": null,
"indexColumns": null,
"indexName": null,
"indexType": null,
"schema": "<schema>",
"table": "<table>"
},
"estimatedImpact": null,
"id": "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<server>/tuningOptions/table/recommendations/<recommendation_id>",
"implementationDetails": {
"method": "SQL",
"script": "VACUUM \"<schema>\".\"<table>\";"
},
"improvedQueryIds": [
-2306335776078168728
],
"initialRecommendedTime": "2026-01-27T17:26:40.823239+00:00",
"kind": "",
"lastRecommendedTime": "2026-01-27T17:26:40.823239+00:00",
"name": "Vacuum_<database>_<schema>_<table>",
"recommendationReason": "Table \"<schema>\".\"<table>\" should be vacuumed. It has an estimated size of <table_size>GB and a bloat percentage of <bloat_percentage>% (bloat size represents <bloat_size>GB).",
"recommendationType": "Vacuum",
"resourceGroup": "<resource_group>",
"systemData": null,
"timesRecommended": 1,
"type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/table"
},
{
.
.
.
}
]
Använd valfritt PostgreSQL-klientverktyg enligt dina önskemål:
Anslut till databasen azure_sys, som är tillgänglig på servern, med en roll som har behörighet att ansluta till servern. Medlemmar i public rollen kan läsa från dessa vyer.
Kör sökfrågor på sessions i vyn för att hämta information om rekommendationssessionernas detaljer.
Kör frågor i recommendations vyn för att hämta rekommendationerna som skapas genom autonom justering för CREATE INDEX, DROP INDEX och REINDEX.
Views
Vyer i azure_sys databasen är ett bekvämt sätt att komma åt och hämta rekommendationer som genereras av autonom justering. Mer specifikt innehåller vyerna intelligentperformance.sessions och intelligentperformance.recommendations detaljerad information om rekommendationer för CREATE INDEX, DROP INDEX, REINDEX, ANALYZE och VACUUM. Dessa vyer visar information som sessionsidentifierare, databasnamn, sessionstyp, start- och stopptider för justeringssessionen, rekommendationstyp, orsak till varför rekommendationen skapades och annan relevant information. Användare kan köra frågor mot dessa vyer för att enkelt komma åt och analysera rekommendationerna som skapas genom autonom justering.
Vyn sessions visar all information för alla indexjusteringssessioner.
| Kolumnnamn |
Datatyp |
Description |
| session_id |
Universellt unik identifierare (UUID) |
Universellt unik identifierare tilldelad till varje ny justeringssession som initieras. |
| databasnamn |
varchar(64) |
Namnet på databasen i vars kontext indexjusteringssessionen kördes. |
| sessionstyp |
intelligentperformance.recommendation_type |
Anger vilka typer av rekommendationer som indexjusteringssessionen kan ge. Möjliga värden är: CreateIndex, DropIndex, Table. Sessioner av CreateIndex typen kan ge rekommendationer av CreateIndex typen. Sessioner av DropIndex typen kan ge rekommendationer av DropIndex eller ReIndex typer. Sessioner av Table typen kan ge rekommendationer av Analyze eller Vacuum typer. |
| körtyp |
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, ställs in på Scheduled. |
| state |
intelligentperformance.rekommendationsstatus |
Anger sessionens aktuella tillstånd. Möjliga värden är: Error, Success, InProgress. Sessioner där körningen 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. |
| starttid |
tidsstämpel utan tidszon |
Tidsstämpel där justeringssessionen som producerade den här rekommendationen startades. |
| stopptid |
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. |
| antal rekommendationer |
integer |
Totalt antal rekommendationer som tagits fram i den här sessionen. |
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 |
Description |
| rekommendations_id |
integer |
Nummer som unikt identifierar en rekommendation på hela servern. |
| current_state |
intelligentperformance.recommendation_current_state |
Anger det aktuella tillståndet för rekommendationen som skapats. Möjliga värden är: Active, Detected. |
| senast_kända_session_id |
Universellt unik identifierare (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. |
| senast_kända_sessionstyp |
intelligentperformance.recommendation_type |
Typ av rekommendationssession där rekommendationen senast rekommenderades. Möjliga värden är: CreateIndex, DropIndex, ReIndex. |
| databasnamn |
varchar(64) |
Namnet på databasen i vars kontext rekommendationen skapades. |
| rekommendationstyp |
intelligentperformance.recommendation_type |
Anger vilken typ av rekommendation som har skapats. Möjliga värden är: CreateIndex, DropIndex, ReIndex, AnalyzeTable, VacuumTable. |
| initial_rekommenderad_tid |
tidsstämpel utan tidszon |
Tidsstämpel där justeringssessionen som producerade den här rekommendationen startades. |
| senast_rekommenderade_tid |
tidsstämpel utan tidszon |
Tidsstämpel där justeringssessionen som producerade den här rekommendationen startades. |
| antal gånger rekommenderat |
integer |
Tidsstämpel där justeringssessionen som producerade den här rekommendationen startades. |
| reason |
texten |
Orsak som motiverar varför den här rekommendationen har tagits fram. |
| rekommendationskontext |
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 CREATE INDEX-rekommendationer
När autonom justering rekommenderar att ett index skapas lägger det till minst en av följande orsaker:
| Reason |
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 REINDEX-rekommendationer
När autonom justering identifierar ogiltiga index föreslår den att de indexeras om 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 DROP INDEX-rekommendationer
När autonom justering identifierar ett index som inte används i minst det antal dagar som anges i index_tuning.unused_min_periodföreslår den att det släpps med följande orsak:
The index is unused in the past <days_unused> days.
När den autonoma inställningen identifierar duplicerade index behålls en av dubbletterna, och det föreslås att de återstående indexen tas bort. Orsaken som anges har alltid följande starttext:
Duplicate of <surviving_duplicate>.
Följt av en annan text som förklarar anledningen till att varje dubblett väljs för borttagning.
| Reason |
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 är flyttbart på grund av duplicering och inte används under minst det antal dagar som anges i index_tuning.unused_min_periodläggs följande text till på orsaken:
Also, the index is unused in the past <days_unused> days.
Orsaker till ANALYZE-rekommendationer
När autonom justering upptäcker en tabell som refereras i en av de studerade frågeställningarna och fastställer att tabellen aldrig har analyserats, föreslår den att köra ANALYZE på tabellen av följande anledning:
Table "<schema>"."<table>" has not been analyzed but is being used by queries: "<queryId-1>, ..., <queryId-n>"
När autonom justering identifierar en tabell som refereras i en av de frågor som studeras och avgör att tabellen har analyserats men för närvarande inte har någon statistik (när servern kraschar innan statistik sparas) föreslår den att du kör ANALYZE på tabellen med följande anledning:
Table "<schema>"."<table>" lacks statistics, has more than <liveRows> rows, and is used by queries: "<queryId-1>, ..., <queryId-n>"
Orsaker till VACUUM-rekommendationer
När autonom justering identifierar en tabell som refereras i en av de studerade frågorna och avgör att tabellen är uppsvälld, och autovacuum_enabled inte är inställd på off på servernivå, föreslår den att köra VACUUM på tabellen med följande grundorsak:
Table "<schema>"."<table>" should be vacuumed. It has an estimated size of <estimatedSize>GB and a bloat percentage of <bloatPercentage>% (bloat size represents <bloatSize>GB).
Om autovacuum är aktiverat på server- och tabellnivå läggs följande text till i grundorsaken:
Autovacuum is enabled at both the server and table level, but appears to be falling behind.
Om autovacuum är inaktiverat på tabellnivå läggs följande text till i grundorsaken:
Autovacuum is disabled at the table level.