Limitando as consultas em execução simultaneamente

Este tópico discute como um proprietário ou administrador de warehouse pode reduzir o número de consultas que estão sendo executadas simultaneamente em um warehouse, a fim de melhorar o desempenho dessas consultas.

As consultas executadas simultaneamente em um warehouse devem compartilhar os recursos do warehouse, o que significa que cada consulta pode ser alocada com menos recursos. Você pode usar o parâmetro MAX_CONCURRENCY_LEVEL para limitar o número de consultas simultâneas em um warehouse. Como menos consultas estão competindo pelos recursos do warehouse, uma consulta pode receber mais recursos.

A redução do nível de concorrência pode aumentar o desempenho para consultas individuais, especialmente consultas grandes, complexas ou com várias instruções, mas esses ajustes devem ser testados minuciosamente para garantir que tenham o efeito desejado.

Esteja ciente de que abaixar o MAX_CONCURRENCY_LEVEL para um warehouse pode fazer com que mais consultas sejam colocadas em uma fila, o que tem uma implicação de desempenho para essas consultas. Outras estratégias, como o uso de um warehouse dedicado ou o uso do Query Acceleration Service, podem aumentar o desempenho de uma consulta grande ou complexa sem afetar o restante da carga de trabalho.

Nota

O ajuste do parâmetro STATEMENT_QUEUED_TIMEOUT_IN_SECONDS pode cancelar as consultas em vez de deixá-las permanecer na fila por um período prolongado.

Como abaixar o MAX_CONCURRENCY_LEVEL

O nível máximo padrão de concorrência é 8. Para abaixar o nível, use o comando ALTER WAREHOUSE para especificar um número mais baixo. Por exemplo:

ALTER WAREHOUSE my_wh SET MAX_CONCURRENCY_LEVEL = 4;
Copy