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 |
|---|---|---|
O serviço de otimização de pesquisa pode melhorar o desempenho destes tipos de pesquisa para os tipos de dados suportados. |
||
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. |
|
|
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. |
|
|
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.