Partilhar via


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

  1. Entre no portal do Azure e selecione sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL.

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

      Captura de tela que mostra o aspeto da página 'Ajuste de índice' quando o recurso está ativado, mas não há recomendações.

    • Se o recurso estiver desativado no momento e nunca tiver produzido recomendações no passado, a tela terá esta aparência:

      Captura de tela que mostra o aspeto da página 'Ajuste de índice' quando o recurso está desativado e não há recomendações.

    • Se o recurso estiver ativado e nenhuma recomendação for produzida ainda, a tela terá esta aparência:

      Captura de tela que mostra o aspeto da página 'Ajuste de índice' quando o recurso está ativado e não há recomendações.

    • Se o recurso estiver desativado, mas já tiver produzido recomendações, a tela terá esta aparência:

      Captura de tela que mostra o aspeto da página 'Ajuste de índice' quando o recurso está desativado e há recomendações.

  3. Se houver recomendações disponíveis, selecione no resumo Exibir recomendações de índice para acessar a lista completa:

    Captura de tela que mostra o aspeto da página 'Ajuste de índice' quando há recomendações e a maneira de chegar à lista completa.

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

    Captura de tela que mostra o aspeto da página 'Recomendações de índice' com várias recomendações.

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

    Captura de tela que mostra o aspeto do painel

Consumir recomendações de índice por meio de exibições disponíveis em azure_sys banco de dados

  1. 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 a public partir desses pontos de vista.
  2. Execute consultas na sessions exibição para recuperar os detalhes sobre sessões de recomendação.
  3. 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

  1. Entre no portal do Azure e selecione sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL.

  2. Selecione Ajuste de índice na seção Desempenho inteligente do menu.

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

    Captura de tela que mostra o aspeto da página 'Ajuste de índice' quando há recomendações e a maneira de chegar à lista completa.

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

      Captura de tela que mostra como copiar a instrução SQL da página 'Recomendações de índice'.

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

      Captura de tela que mostra como copiar a instrução SQL da página 'Detalhes da recomendação do índice'.