Usar recomendações de índice produzidas pelo ajuste de índice no Banco de Dados do Azure para PostgreSQL - Servidor Flexível
O ajuste de índice persiste as recomendações feitas em um conjunto de tabelas localizadas sob o intelligentperformance
esquema no azure_sys
banco de dados.
Atualmente, essas informações podem ser lidas usando a compilação da página do portal do Azure para essa finalidade ou executando consultas para recuperar dados de dois modos de exibição disponíveis dentro intelligent performance
do banco de azure_sys
dados.
Consumir recomendações de índice através do portal do Azure
Entre no portal do Azure e selecione sua instância de 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 ativado, mas nenhuma recomendação for produzida ainda, a tela terá esta aparência:
Se o recurso estiver desativado no momento e nunca tiver produzido recomendações no passado, a tela terá esta aparência:
Se o recurso estiver ativado e nenhuma recomendação for produzida ainda, a tela terá esta aparência:
Se o recurso estiver desativado, mas já tiver produzido recomendações, a tela terá esta aparência:
Se houver recomendações disponíveis, selecione no resumo Exibir recomendações de índice para acessar a lista completa:
A lista mostra todas as recomendações disponíveis com alguns detalhes para 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 pode usar a caixa de filtragem para reduzir a lista de itens mostrados para os itens cujos nomes de banco de dados, esquema ou tabela contêm o texto fornecido:
Para ver mais informações sobre qualquer recomendação específica, selecione o nome dessa recomendação e o painel Detalhes da recomendação do í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 em azure_sys banco de dados
- Conecte-se ao
azure_sys
banco de dados disponível em seu servidor com qualquer função que tenha permissão para se conectar à instância. Os membros da função podem ler apublic
partir desses pontos de vista. - Execute consultas na
sessions
exibição para recuperar os detalhes sobre sessões de recomendação. - Execute consultas na
recommendations
exibição para recuperar as recomendações produzidas pelo ajuste de índice para CREATE INDEX e DROP INDEX.
Visualizações
As visualizações no azure_sys
banco de dados fornecem uma maneira conveniente de acessar e recuperar recomendações de índice geradas pelo ajuste do índice. Especificamente, as visualizações e dropindexrecommendations
contêm informações detalhadas sobre as createindexrecommendations
recomendações CREATE INDEX e DROP INDEX, respectivamente. Essas exibições expõem dados como o ID da sessão, o nome do banco de dados, o tipo de orientador, os horários de início e de parada da sessão de ajuste, o 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 do índice.
intelligentperformance.sessões
A sessions
exibição expõe todos os detalhes de todas as sessões de ajuste de índice.
nome da coluna | tipo de dados | Description |
---|---|---|
session_id | uuid | Identificador Exclusivo Global 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 esta sessão de ajuste de índice pode produzir. Os valores possíveis são: CreateIndex , DropIndex . Sessões do CreateIndex tipo podem produzir recomendações do CreateIndex tipo. Sessões do DropIndex tipo podem produzir recomendações de DropIndex ou ReIndex tipos. |
run_type | intelligentperformance.recommendation_run_type | Indica a forma como esta sessão foi iniciada. Os valores possíveis são: Scheduled . Às sessões executadas automaticamente de acordo com o valor de index_tuning.analysis_interval , é atribuído um tipo de execução de Scheduled . |
state | 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 sua execução corretamente, quer tenham gerado recomendações ou não, são definidas como Success . As sessões que ainda estão em execução são definidas como InProgress . |
hora de início | carimbo de data/hora sem fuso horário | Carimbo de data/hora no qual 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 no qual 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 | integer | Número total de recomendações produzidas nesta sessão. |
intelligentperformance.recomendações
A recommendations
exibição 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 | Description |
---|---|---|
recommendation_id | integer | Número que identifica exclusivamente uma recomendação em todo o servidor. |
last_known_session_id | uuid | A cada sessão de ajuste de índice é atribuído um Identificador Global Exclusivo. O valor desta coluna representa o da sessão que mais recentemente produziu esta recomendação. |
database_name | Varchar(64) | Nome da base de dados em cujo contexto foi produzida a recomendação. |
recommendation_type | intelligentperformance.recommendation_type | Indica o tipo de 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 no qual 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 no qual a sessão de ajuste que produziu essa recomendação foi iniciada. |
times_recommended | integer | Carimbo de data/hora no qual a sessão de ajuste que produziu essa recomendação foi iniciada. |
reason | texto | Razões que justificam a elaboração desta recomendação. |
recommendation_context | json | Contém a lista de identificadores de consulta para as consultas afetadas pela recomendação, o tipo de índice recomendado, o nome do esquema e o nome da tabela na qual o índice está sendo recomendado, as colunas de índice, o nome do índice e o tamanho estimado em bytes do índice recomendado. |
Razões 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:
Razão |
---|
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> |
Razões para recomendações de queda do índice
Quando o ajuste de índice identifica quaisquer índices marcados como inválidos, ele propõe eliminá-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 o REINDEX na documentação oficial do PostgreSQL.
Razões para recomendações de queda do índice
Quando o ajuste de índice deteta um índice que não é usado por, pelo menos, o número de dias definido em index_tuning.unused_min_period
, ele propõe descartá-lo com o seguinte motivo:
The index is unused in the past <days_unused> days.
Quando o ajuste de índice deteta índices duplicados, um dos duplicados sobrevive e propõe descartar o restante. O motivo fornecido tem sempre o seguinte texto inicial:
Duplicate of <surviving_duplicate>.
Seguido de outro texto que explica o motivo pelo qual cada uma das duplicatas foi escolhida para drop:
Razão |
---|
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 a duplicação, mas também não for utilizado durante, pelo menos, o número de dias definido em index_tuning.unused_min_period
, o seguinte texto é anexado 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 declaração pode ser obtida para uma recomendação específica.
Depois de ter a instrução, você pode usar qualquer cliente PostgreSQL de sua preferência para se conectar ao seu servidor e aplicar a recomendação.
Obter instrução SQL por meio da página de ajuste de índice no portal do Azure
Entre no portal do Azure e selecione sua instância de 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 do índice já tenha produzido recomendações, selecione o resumo Exibir recomendações de índice para acessar a lista de recomendações disponíveis.
Da lista de recomendações:
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 mostrar seus detalhes de recomendação de índice e selecione o ícone copiar para área de transferência na caixa de texto de script SQL para copiar a instrução SQL.
Conteúdos relacionados
- Ajuste de índice no Banco de Dados do Azure para PostgreSQL - Servidor Flexível
- Configurar o ajuste de índice no Banco de Dados do Azure para PostgreSQL - Servidor Flexível
- Monitore 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
- Práticas recomendadas para o Repositório de Consultas - Banco de Dados do Azure para PostgreSQL - Servidor Flexível
- Query Performance Insight for Azure Database for PostgreSQL - Servidor flexível