Monitoramento da otimização de pesquisa usando o Snowsight

Depois de ativar o serviço de otimização de pesquisa, você pode usar o Snowsight para monitorar as estatísticas sobre como as consultas o utilizam. Você também pode usar o Snowsight para determinar por que uma consulta não está usando o serviço de otimização de pesquisa.

Monitore o uso da otimização de pesquisa para uma consulta

Quando uma consulta usa o serviço de otimização de pesquisa, o perfil de consulta inclui o seguinte:

  • Search Optimization Access – Um nó Search Optimization Access dedicado está no plano de consulta. Selecione esse nó para acessar as informações de varredura de tabela, bem como informações específicas de otimização de pesquisa.

  • Painel Attributes – Este painel do nó contém o seguinte:

    • Nome completo da tabela – Identifica a tabela examinada para a consulta que usou a otimização de pesquisa.

    • Informações de uso da otimização de pesquisa – Esta seção lista os IDs de expressão que a otimização de pesquisa referenciou durante a execução da consulta. Cada ID de expressão corresponde a um método de pesquisa e a um destino de coluna definidos para a tabela. Execute a seguinte consulta para mostrar os IDs de expressão, bem como seus métodos e destinos correspondentes:

      DESCRIBE SEARCH OPTIMIZATION ON <table_name>;
      
      Copy

      Para obter mais informações sobre esse comando, consulte DESCRIBE SEARCH OPTIMIZATION.

  • Painel Statistics – Esse painel do nó contém as seguintes métricas:

    • Bytes scanned – A quantidade total de dados lida durante a execução de uma operação de verificação da tabela.

    • Partitions scanned – O número de micropartições que foram realmente escaneadas.

    • Partitions total – O número total de micropartições da tabela.

    • Partitions pruned by search optimization – O número de micropartições que a otimização de pesquisa eliminou efetivamente da verificação de tabela correspondente.

A imagem a seguir mostra um exemplo das métricas no painel Statistics:

Mostra o nó de acesso da otimização de pesquisa com as estatísticas de otimização de pesquisa incluídas.

Determinar o motivo pelo qual a otimização de pesquisa não foi usada

Mesmo quando a otimização de pesquisa está configurada para uma tabela, ela pode nem sempre ser usada. Se a otimização de pesquisa não foi usada para uma consulta, examine a seção Search Optimization Usage Info do nó Table Scan no painel Attributes. A seção mostra uma das seguintes explicações:

  • Quando há uma incompatibilidade de predicado, a seguinte mensagem é exibida:

    Search optimization service was not used because no
    match was found between used predicates and the
    search access paths added for the table.
    

    Essa mensagem indica que o predicado usado na consulta dessa tabela não é compatível com os métodos de pesquisa definidos para a tabela. Você pode revisar a configuração de otimização da tabela executando o seguinte comando:

    DESCRIBE SEARCH OPTIMIZATION ON <table_name>;
    
    Copy

    Para obter informações sobre os predicados e tipos de dados compatíveis com a otimização de pesquisa, consulte Identificação de consultas que podem se beneficiar da otimização de pesquisa.

  • Quando há uma decisão baseada no custo de não usar a otimização de pesquisa, a seguinte mensagem é exibida:

    The query optimizer estimated that the search optimization
    service would not be beneficial for this table scan.
    

    Essa mensagem indica que os predicados usados na consulta são compatíveis com os métodos de pesquisa definidos para a tabela, mas o otimizador de consultas decidiu que o desempenho da consulta provavelmente não seria melhorado pela otimização de pesquisa. As consultas subsequentes com predicados diferentes ou dados diferentes na tabela de origem podem usar a otimização de pesquisa.

  • Quando o limite do predicado é excedido, a seguinte mensagem é exibida:

    Search optimization service was not used because the
    predicate limit was exceeded.
    

    Essa mensagem indica que o predicado contém muitos predicados distintos. A contagem exata dos predicados de otimização de pesquisa depende dos tipos de predicados e pode não corresponder exatamente ao número de predicados na consulta. As consultas de substring e consultas de busca de texto completo que usam a sintaxe curinga têm maior probabilidade de atingir o limite de predicados.

A imagem a seguir mostra um exemplo de mensagem de incompatibilidade de predicado:

Mostra o nó de acesso da otimização de pesquisa com uma mensagem sobre o motivo de não usar a otimização de pesquisa.