Use as recomendações de índice produzidas pelo ajuste de índice no Banco de Dados do Azure para PostgreSQL – Servidor Flexível
O ajuste de índice mantém as recomendações feitas em um conjunto de tabelas localizadas sob o esquema intelligentperformance
no banco de dados azure_sys
.
Atualmente, essas informações podem ser lidas usando a página do portal do Microsoft Azure criada para essa finalidade ou executando consultas para recuperar dados de duas exibições disponíveis no intelligent performance
do banco de dados azure_sys
.
Consumir recomendações de índice por meio do portal do Microsoft Azure
Entre no portal do Azure e selecione sua instância do servidor flexível do Banco de Dados do Azure para PostgreSQL.
Selecione Ajuste de índice na seção Desempenho inteligente do menu.
Se o recurso estiver habilitado, mas nenhuma recomendação for produzida ainda, a tela terá a seguinte aparência:
Se o recurso estiver desabilitado no momento e nunca tiver produzido recomendações no passado, a tela terá a seguinte aparência:
Se o recurso estiver habilitado e nenhuma recomendação tiver sido produzida ainda, a tela terá a seguinte aparência:
Se o recurso estiver desabilitado, mas já tiver produzido recomendações, a tela terá a seguinte aparência:
Se houver recomendações disponíveis, selecione a Exibir recomendações de índice para acessar a lista completa:
A lista mostra todas as recomendações disponíveis com alguns detalhes de cada uma delas. Por padrão, a lista é classificada por Última recomendação em ordem decrescente, mostrando as recomendações mais recentes na parte superior. No entanto, você pode classificar por qualquer outra coluna e usar a caixa de filtragem para reduzir a lista de itens mostrados aos itens cujos nomes de banco de dados, esquema ou tabela contenham o texto fornecido:
Para ver mais informações sobre uma recomendação específica, selecione o nome dessa recomendação, e o painel de Detalhes da recomendação de índice será aberto no lado direito da tela para exibir todos os detalhes disponíveis sobre a recomendação:
Consumir recomendações de índice por meio de exibições disponíveis no banco de dados azure_sys
- Conecte-se ao banco de dados
azure_sys
disponível em seu servidor com qualquer função que tenha permissão para se conectar à instância. Os membros da funçãopublic
podem fazer a leitura a partir dessas exibições. - Execute consultas na exibição
sessions
para recuperar os detalhes sobre sessões de recomendação. - Execute consultas na exibição
recommendations
para recuperar as recomendações produzidas pelo ajuste de índice para CREATE INDEX e DROP INDEX.
Exibições
As exibições no banco de dados azure_sys
oferecem uma maneira conveniente de acessar e recuperar as recomendações de índice geradas pelo ajuste de índice. Especificamente, as exibições createindexrecommendations
e dropindexrecommendations
contêm informações detalhadas sobre as recomendações CREATE INDEX e DROP INDEX, respectivamente. Essas exibições expõem dados como a ID da sessão, o nome do banco de dados, o tipo de assistente, os horários de início e término da sessão de ajuste, a ID da recomendação, o tipo de recomendação, o motivo da recomendação e outros detalhes relevantes. Ao consultar essas exibições, os usuários podem acessar e analisar facilmente as recomendações de índice produzidas pelo ajuste de índice.
intelligentperformance.sessions
A exibição sessions
expõe todos os detalhes de todas as sessões de ajuste de índice.
nome da coluna | tipo de dados | Descrição |
---|---|---|
session_id | uuid | O identificador globalmente exclusivo atribuído a cada nova sessão de ajuste iniciada. |
database_name | varchar(64) | Nome do banco de dados em cujo contexto a sessão de ajuste de índice foi executada. |
session_type | intelligentperformance.recommendation_type | Indica os tipos de recomendações que essa sessão de ajuste de índice pode produzir. Os valores possíveis são os seguintes: CreateIndex , DropIndex . Sessões do tipo CreateIndex podem produzir recomendações de tipo CreateIndex . Sessões do tipo DropIndex podem produzir recomendações dos tipos DropIndex ou ReIndex . |
run_type | intelligentperformance.recommendation_run_type | Indica a maneira como essa sessão foi iniciada. Os valores possíveis são: Scheduled . As sessões executadas automaticamente de acordo com o valor de index_tuning.analysis_interval , recebem um tipo de execução de Scheduled . |
estado | intelligentperformance.recommendation_state | Indica o estado atual da sessão. Os valores possíveis são: Error , Success , InProgress . As sessões cuja execução falhou são definidas como Error . As sessões que concluíram a execução corretamente, independentemente de terem gerado ou não recomendações, são definidas como Success . As sessões que ainda estão em execução são definidas como InProgress . |
start_time | carimbo de data/hora sem fuso horário | Carimbo de data/hora em que a sessão de ajuste que produziu essa recomendação foi iniciada. |
stop_time | carimbo de data/hora sem fuso horário | Carimbo de data/hora em que a sessão de ajuste que produziu essa recomendação foi iniciada. NULL se a sessão estiver em andamento ou tiver sido abortada devido a alguma falha. |
recommendations_count | Número inteiro | Número total de recomendações produzidas nesta sessão. |
intelligentperformance.recommendations
A exibição recommendations
expõe todos os detalhes de todas as recomendações geradas em qualquer sessão de ajuste cujos dados ainda estejam disponíveis nas tabelas subjacentes.
nome da coluna | tipo de dados | Descrição |
---|---|---|
recommendation_id | Número inteiro | Número que identifica exclusivamente uma recomendação em todo o servidor. |
last_known_session_id | uuid | Cada sessão de ajuste de índice recebe um Identificador Globalmente Exclusivo. O valor nesta coluna representa o da sessão que mais recentemente produziu essa recomendação. |
database_name | varchar(64) | Nome do banco de dados em cujo contexto foi produzida a recomendação. |
recommendation_type | intelligentperformance.recommendation_type | Indica o tipo da recomendação produzida. Os valores possíveis são: CreateIndex , DropIndex , ReIndex . |
initial_recommended_time | carimbo de data/hora sem fuso horário | Carimbo de data/hora em que a sessão de ajuste que produziu essa recomendação foi iniciada. |
last_recommended_time | carimbo de data/hora sem fuso horário | Carimbo de data/hora em que a sessão de ajuste que produziu essa recomendação foi iniciada. |
times_recommended | Número inteiro | Carimbo de data/hora em que a sessão de ajuste que produziu essa recomendação foi iniciada. |
reason | text | Motivo que justifica por que essa recomendação foi produzida. |
recommendation_context | json | Contém a lista de identificadores de consulta para as consultas que são afetadas pela recomendação, o tipo de índice que está sendo recomendado, o nome do esquema e o nome da tabela na qual o índice está sendo recomendado, as colunas do índice, o nome do índice e o tamanho estimado em bytes do índice recomendado. |
Motivos para criar recomendações de índice
Quando o ajuste de índice recomenda a criação de um índice, ele adiciona pelo menos um dos seguintes motivos:
Motivo |
---|
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> |
Motivos para criar recomendações de remoção de índice
Quando o ajuste de índice identifica todos os índices marcados como inválidos, ele propõe removê-lo com o seguinte motivo:
The index is invalid and the recommended recovery method is to reindex.
Para saber mais sobre por que e quando os índices são marcados como inválidos, consulte a documentação oficial REINDEX no PostgreSQL.
Motivos para criar recomendações de remoção de índice
Quando o ajuste de índice detecta um índice que não é usado para, pelo menos, o número de dias definido em index_tuning.unused_min_period
, ele propõe removê-lo com o seguinte motivo:
The index is unused in the past <days_unused> days.
Quando o ajuste de índice detecta índices duplicados, uma das duplicatas sobrevive e propõe remover o restante. O motivo fornecido sempre tem o seguinte texto inicial:
Duplicate of <surviving_duplicate>.
Seguido por outro texto que explica o motivo pelo qual cada uma das duplicatas foi escolhida para soltar:
Motivo |
---|
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>". |
Se o índice não só for removível devido à duplicação, mas também não for usado para, pelo menos, o número de dias definido em index_tuning.unused_min_period
, o seguinte texto será acrescentado ao motivo:
Also, the index is unused in the past <days_unused> days.
Aplicar recomendações de índice
As recomendações de índice contêm a instrução SQL que você pode executar para implementar a recomendação.
As seções a seguir demonstrarão como essa instrução pode ser obtida para uma recomendação específica.
Depois de obter a instrução, você pode usar qualquer cliente PostgreSQL de sua preferência para se conectar ao seu servidor e aplicar a recomendação.
Obtenha o comando SQL por meio da página Ajuste de índice no portal do Microsoft Azure
Entre no portal do Azure e selecione sua instância do servidor flexível do Banco de Dados do Azure para PostgreSQL.
Selecione Ajuste de índice na seção Desempenho inteligente do menu.
Supondo que o ajuste de índice já tenha produzido recomendações, selecione o resumo Exibir recomendações de índices para acessar a lista de recomendações disponíveis.
Na lista de recomendações, você pode:
Selecione as reticências à direita da recomendação para a qual você deseja obter a instrução SQL e selecione Copiar script SQL.
Ou selecione o nome da recomendação para exibir seus Detalhes da recomendação de índice e selecione o ícone copiar para a área de transferência na caixa de texto Script SQL para copiar a instrução SQL.
Conteúdo relacionado
- Ajuste de índice no Banco de Dados do Azure para PostgreSQL – Servidor Flexível
- Configure o ajuste de índice no Banco de Dados do Azure para PostgreSQL – Servidor Flexível
- Monitorar o desempenho com o Repositório de Consultas
- Cenários de uso do Repositório de Consultas - Banco de Dados do Azure para PostgreSQL - Servidor Flexível
- Melhores práticas para o Repositório de Consultas - Banco de Dados do Azure para PostgreSQL - Servidor Flexível
- Análise de Desempenho de Consultas para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível