Otimização do desempenho da consulta

Você pode otimizar o desempenho de consultas Snowflake das seguintes maneiras:

  • Serviço de otimização de pesquisa

  • Aceleração de consulta

  • Criação de uma ou mais exibições materializadas (clusterizadas ou não)

  • Clustering de uma tabela

Cada um destes métodos de otimização tem vantagens diferentes, como mostrado na tabela a seguir:

Recurso

Tipos de consulta suportados

Notas

Serviço de otimização de pesquisa

O serviço de otimização de pesquisa pode melhorar o desempenho destes tipos de pesquisa para os tipos de dados suportados.

Serviço de aceleração de consultas

Consultas com filtros ou agregação. Se a consulta incluir LIMIT, ela também deverá incluir ORDER BY.
Os filtros devem ser altamente seletivos e a cláusula ORDER BY deve ter uma cardinalidade baixa.

A aceleração de consultas funciona bem com análises ad-hoc e consultas com volume de dados imprevisível,
além de consultas com grandes varreduras e filtros seletivos.

A aceleração de consultas e a otimização de pesquisa são complementares. Ambos podem acelerar a mesma consulta. Consulte Compatibilidade com a aceleração de consulta.

Materialized views

  • Pesquisas por igualdade.

  • Pesquisas por intervalo.

  • Operações de classificação.

Você também pode usar exibições materializadas para definir diferentes chaves de clustering na mesma tabela de origem (ou em um subconjunto dessa tabela) ou para armazenar dados nivelados JSON ou VARIANT, de modo que só precisem ser nivelados uma vez.

As exibições materializadas melhoram o desempenho somente para o subconjunto de linhas e colunas incluídas na exibição materializada.

Clustering da tabela

  • Pesquisas por igualdade.

  • Pesquisas por intervalo.

Uma tabela pode ser clusterizada somente em uma única chave, que pode conter uma ou mais colunas ou expressões.

A tabela seguinte mostra quais dessas otimizações têm custos de armazenamento ou computação:

Otimização

Custo de armazenamento

Custo de computação

Serviço de otimização de pesquisa

Serviço de aceleração de consultas

Exibição materializada

Clustering da tabela

[1]

Compatibilidade com a aceleração de consulta

A otimização de pesquisa e a aceleração da consulta podem trabalhar juntas para otimizar o desempenho da consulta. Primeiro, a otimização de pesquisa pode eliminar as micropartições que não são necessárias para uma consulta. Então, para as consultas elegíveis, a aceleração de consultas pode transferir partes do restante do trabalho para recursos de computação compartilhados fornecidos pelo serviço.

O desempenho das consultas que são aceleradas por ambos os serviços varia de acordo com a carga de trabalho e os recursos disponíveis.