Uso do Query Acceleration Service

O Query Acceleration Service pode acelerar partes da carga de trabalho da consulta em um warehouse. Quando ativado para um warehouse, ele pode melhorar o desempenho geral do warehouse reduzindo o impacto de consultas externas, que são consultas que utilizam mais recursos do que a consulta típica. O Query Acceleration Service faz isto descarregando partes do trabalho de processamento de consultas para compartilhar recursos computacionais que são fornecidos pelo serviço.

Exemplos dos tipos de cargas de trabalho que podem se beneficiar do Query Acceleration Service incluem:

  • Análise ad hoc.

  • Cargas de trabalho com volume de dados imprevisíveis por consulta.

  • Consultas com grandes verificações e filtros seletivos.

O Query Acceleration Service pode lidar com estes tipos de cargas de trabalho de forma mais eficiente, realizando mais trabalho em paralelo e reduzindo o tempo gasto em verificações e filtragem.

Nota

O Query Acceleration Service depende da disponibilidade do servidor. Portanto, as melhorias de desempenho podem oscilar ao longo do tempo.

Neste tópico:

Identificação de consultas e warehouses que podem se beneficiar da aceleração das consultas

Para identificar as consultas que podem se beneficiar do Query Acceleration Service, você pode usar a função SYSTEM$ESTIMATE_QUERY_ACCELERATION ou consultar a função Exibição QUERY_ACCELERATION_ELIGIBLE. A exibição QUERY_ACCELERATION_ELIGIBLE também identifica os warehouses que podem se beneficiar do Query Acceleration Service.

Consultas não qualificadas

Algumas consultas não são qualificadas para aceleração de consulta. As seguintes são razões comuns pelas quais uma consulta não pode ser acelerada:

  • Não há partições suficientes. Se não houver partições suficientes para verificar, os benefícios da aceleração de consulta serão compensados pela latência na aquisição de recursos para o serviço de aceleração de consulta.

  • A consulta não filtra nem agrega.

  • Os filtros não são suficientemente seletivos. Como alternativa, a expressão GROUP BY tem um alto grau de cardinalidade.

  • A consulta inclui uma cláusula LIMIT, mas não possui uma cláusula ORDER BY.

  • A consulta inclui funções que retornam resultados não determinísticos (por exemplo, SEQ ou RANDOM).

Identificação de consultas com a função SYSTEM$ESTIMATE_QUERY_ACCELERATION

A função SYSTEM$ESTIMATE_QUERY_ACCELERATION pode ajudar a determinar se uma consulta previamente executada pode se beneficiar do Query Acceleration Service. Se a consulta for elegível para aceleração de consulta, a função retorna o tempo estimado de execução da consulta para diferentes fatores de escala da aceleração de consultas.

Exemplo

Execute a seguinte instrução para ajudar a determinar se a aceleração da consulta pode beneficiar uma consulta específica:

SELECT PARSE_JSON(SYSTEM$ESTIMATE_QUERY_ACCELERATION('8cd54bf0-1651-5b1c-ac9c-6a9582ebd20f'));
Copy

Neste exemplo, a consulta é elegível para o Query Acceleration Service e inclui tempos estimados de consulta usando o serviço:

{
  "estimatedQueryTimes": {
    "1": 171,
    "10": 115,
    "2": 152,
    "4": 133,
    "8": 120
  },
  "originalQueryTime": 300.291,
  "queryUUID": "8cd54bf0-1651-5b1c-ac9c-6a9582ebd20f",
  "status": "eligible",
  "upperLimitScaleFactor": 10
}
Copy

O exemplo a seguir mostra os resultados para uma consulta que não é elegível para o Query Acceleration Service:

SELECT PARSE_JSON(SYSTEM$ESTIMATE_QUERY_ACCELERATION('cf23522b-3b91-cf14-9fe0-988a292a4bfa'));
Copy

A instrução acima produz a seguinte saída:

{
  "estimatedQueryTimes": {},
  "originalQueryTime": 20.291,
  "queryUUID": "cf23522b-3b91-cf14-9fe0-988a292a4bfa",
  "status": "ineligible",
  "upperLimitScaleFactor": 0
}
Copy

Identificação de consultas e warehouses com a exibição QUERY_ACCELERATION_ELIGIBLE

Consulte o Exibição QUERY_ACCELERATION_ELIGIBLE para identificar as consultas e warehouses que podem se beneficiar ao máximo do Query Acceleration Service. Para cada consulta, a exibição inclui a quantidade de tempo de execução da consulta que é elegível para o Query Acceleration Service.

Exemplos

Nota

Os exemplos também consideram que a função ACCOUNTADMIN (ou uma função que possui PRIVILEGES IMPORTED no banco de dados SNOWFLAKE) está em uso. Se não estiverem em uso, execute o seguinte comando antes de executar as consultas nos exemplos:

USE ROLE ACCOUNTADMIN;
Copy

Identifique as consultas que mais se beneficiariam do serviço pela quantidade de tempo de execução da consulta que é qualificado para aceleração:

SELECT query_id, eligible_query_acceleration_time
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_ELIGIBLE
  ORDER BY eligible_query_acceleration_time DESC;
Copy

Identificar as consultas que mais podem se beneficiar do serviço em um warehouse específico mywh:

SELECT query_id, eligible_query_acceleration_time
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_ELIGIBLE
  WHERE warehouse_name = 'mywh'
  ORDER BY eligible_query_acceleration_time DESC;
Copy

Identifique os warehouses com mais consultas elegíveis em um determinado período para o Query Acceleration Service:

SELECT warehouse_name, COUNT(query_id) AS num_eligible_queries
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_ELIGIBLE
  WHERE start_time > 'Mon, 29 May 2023 00:00:00'::timestamp
  AND end_time < 'Tue, 30 May 2023 00:00:00'::timestamp
  GROUP BY warehouse_name
  ORDER BY num_eligible_queries DESC;
Copy

Identifique os warehouses com mais tempo elegível para o Query Acceleration Service:

SELECT warehouse_name, SUM(eligible_query_acceleration_time) AS total_eligible_time
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_ELIGIBLE
  GROUP BY warehouse_name
  ORDER BY total_eligible_time DESC;
Copy

Identifique o fator de escala do limite superior para o Query Acceleration Service para um determinado warehouse:

SELECT MAX(upper_limit_scale_factor)
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_ELIGIBLE
  WHERE warehouse_name = 'mywh';
Copy

Identifique a distribuição de fatores de escala para o Query Acceleration Service para um determinado warehouse:

SELECT upper_limit_scale_factor, COUNT(upper_limit_scale_factor)
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_ELIGIBLE
  WHERE warehouse_name = '<warehouse_name>'
  GROUP BY 1 ORDER BY 1;
Copy

Habilitação da aceleração da consulta

Habilite o Query Acceleration Service especificando ENABLE_QUERY_ACCELERATION = TRUE ao criar um warehouse (usando CREATE WAREHOUSE) ou mais tarde (usando ALTER WAREHOUSE).

Comandos SQL com suporte

O Query Acceleration Service oferece suporte aos seguintes comandos SQL:

  • SELECT

  • INSERT (quando a instrução contém uma instrução SELECT)

  • CREATE TABLE AS SELECT (CTAS)

Uma consulta, ou parte de uma consulta (isto é, subconsulta ou cláusula), com um comando SQL suportado pode ser acelerada pelo Query Acceleration Service, se for elegível para aceleração.

Exemplos

O exemplo a seguir habilita o Query Acceleration Service para um warehouse chamado my_wh:

CREATE WAREHOUSE my_wh WITH
  ENABLE_QUERY_ACCELERATION = true;
Copy

Execute o comando SHOW WAREHOUSES para exibir detalhes sobre o warehouse my_wh.

SHOW WAREHOUSES LIKE 'my_wh';

+---------+---------+----------+---------+---------+--------+------------+------------+--------------+-------------+-----------+--------------+-----------+-------+-------------------------------+-------------------------------+-------------------------------+--------------+---------+---------------------------+-------------------------------------+------------------+---------+----------+--------+-----------+------------+
| name    | state   | type     | size    | running | queued | is_default | is_current | auto_suspend | auto_resume | available | provisioning | quiescing | other | created_on                    | resumed_on                    | updated_on                    | owner        | comment | enable_query_acceleration | query_acceleration_max_scale_factor | resource_monitor | actives | pendings | failed | suspended | uuid       |
|---------+---------+----------+---------+---------+--------+------------+------------+--------------+-------------+-----------+--------------+-----------+-------+-------------------------------+-------------------------------+-------------------------------+--------------+---------+---------------------------+-------------------------------------+------------------+---------+----------+--------+-----------+------------|
| MY_WH   | SUSPENDED | STANDARD | Medium |       0 |      0 | N          | N          |          600 | true        |           |              |           |       | 2023-01-20 14:31:49.283 -0800 | 2023-01-20 14:31:49.388 -0800 | 2023-01-20 16:34:28.583 -0800 | ACCOUNTADMIN |         | true                      |                                   8 | null             |       0 |        0 |      0 |         4 | 1132659053 |
+---------+---------+----------+---------+---------+--------+------------+------------+--------------+-------------+-----------+--------------+-----------+-------+-------------------------------+-------------------------------+-------------------------------+--------------+---------+---------------------------+-------------------------------------+------------------+---------+----------+--------+-----------+------------+
Copy

O Query Acceleration Service pode aumentar a taxa de consumo de crédito de um warehouse. O fator de escala máximo pode ajudar a limitar a taxa de consumo. Consulte CREATE WAREHOUSE ou ALTER WAREHOUSE para mais detalhes sobre a propriedade QUERY_ACCELERATION_MAX_SCALE_FACTOR.

A exibição QUERY_ACCELERATION_ELIGIBLE e a função SYSTEM$ESTIMATE_QUERY_ACCELERATION podem ser úteis para determinar um fator de escala apropriado para um warehouse. Consulte Identificação de consultas e warehouses que podem se beneficiar da aceleração das consultas (neste tópico) para obter mais detalhes.

Ajuste do fator de escala

O fator de escala é um mecanismo de controle de custos que permite definir um limite superior da quantidade de recursos de computação que um warehouse pode alugar para a aceleração da consulta. Este valor é utilizado como um multiplicador baseado no tamanho e custo do warehouse.

Por exemplo, suponha que você defina o fator de escala como 5 para um warehouse médio. Isto significa que:

  • O warehouse pode alugar recursos de computação até 5 vezes o tamanho de um warehouse médio.

  • Como um warehouse médio custa 4 créditos por hora, o aluguel destes recursos pode custar até 20 créditos adicionais por hora (4 créditos por warehouse x 5 vezes seu tamanho).

O custo é o mesmo, não importa quantas consultas estejam usando o Query Acceleration Service ao mesmo tempo. O Query Acceleration Service é faturado por segundo, somente quando o serviço está em uso. Estes créditos são faturados separadamente do uso do warehouse.

Nem todas as consultas requerem o conjunto completo de recursos que são disponibilizados pelo fator de escala. A quantidade de recursos solicitados para o serviço depende de quanto da consulta é elegível para aceleração e quantos dados serão processados para respondê-la. Independentemente do valor do fator de escala ou a quantidade de recursos solicitados, a quantidade de recursos de computação disponíveis para aceleração da consulta é limitada pela disponibilidade de recursos no serviço e o número de outras solicitações simultâneas. O Query Acceleration Service utiliza apenas tantos recursos quantos forem necessários e que estão disponíveis no momento em que a consulta é executada.

Se o fator de escala não estiver explicitamente definido, o valor padrão será 8. Definir o fator de escala como 0 elimina o limite superior e permite que as consultas aluguem tantos recursos quantos forem necessários e disponíveis para atender à consulta.

Exemplo

O exemplo a seguir modifica o warehouse chamado my_wh para habilitar o Query Acceleration Service para um fator de escala máximo de 0.

ALTER WAREHOUSE my_wh SET
  ENABLE_QUERY_ACCELERATION = true
  QUERY_ACCELERATION_MAX_SCALE_FACTOR = 0;
Copy

Monitoramento do uso do Query Acceleration Services

Uso da interface da Web para monitorar o uso da aceleração da consulta

Uma vez ativado o Query Acceleration Service, você pode visualizar o painel Profile Overview em Query Profile para ver os efeitos dos resultados da aceleração de consulta.

A captura de tela a seguir mostra um exemplo das estatísticas exibidas para a consulta em geral. Se várias operações em uma consulta foram aceleradas, os resultados são agregados nesta exibição para que você possa ver a quantidade total de trabalho realizado pelo Query Acceleration Service.

../_images/query-acceleration-profile-overview.png

A seção Query Acceleration do painel Profile Overview inclui as seguintes estatísticas:

  • Partitions scanned by service — número de arquivos descarregados para verificação no Query Acceleration Service.

  • Scans selected for acceleration — número de verificações de tabela sendo aceleradas.

Nos detalhes do operador (consulte Visão geral do perfil/Detalhes do operador para mais informações), clique no operador para ver informações detalhadas. A seguinte captura de tela mostra um exemplo das estatísticas exibidas para uma operação TableScan:

../_images/query-acceleration-table-scan.png

A seção Query Acceleration do painel de detalhes TableScan inclui as seguintes estatísticas:

  • Partitions scanned by service — número de arquivos descarregados para verificação no Query Acceleration Service.

Uso da exibição QUERY_HISTORY de Account Usage para monitorar o uso da aceleração da consulta

Para ver os efeitos da aceleração de uma consulta, use as seguintes colunas no Exibição QUERY_HISTORY.

  • QUERY_ACCELERATION_BYTES_SCANNED

  • QUERY_ACCELERATION_PARTITIONS_SCANNED

  • QUERY_ACCELERATION_UPPER_LIMIT_SCALE_FACTOR

Você pode usar estas colunas para identificar as consultas que se beneficiaram com o Query Acceleration Service. Para cada consulta, você também pode determinar o número total de partições e bytes verificados pelo Query Acceleration Service.

Para descrições de cada uma dessas colunas, consulte Exibição QUERY_HISTORY.

Nota

Para uma determinada consulta, a soma das colunas QUERY_ACCELERATION_BYTES_SCANNED e BYTES_SCANNED pode ser maior quando o serviço de aceleração de consultas é usado do que quando o serviço não é usado. O mesmo ocorre com a soma das colunas QUERY_ACCELERATION_PARTITIONS_SCANNED e PARTITIONS_SCANNED.

O aumento no número de bytes e partições se deve aos resultados intermediários gerados pelo serviço para facilitar a aceleração da consulta.

Por exemplo, para encontrar as consultas com mais bytes verificados pelo Query Acceleration Service nas últimas 24 horas:

SELECT query_id,
       query_text,
       warehouse_name,
       start_time,
       end_time,
       query_acceleration_bytes_scanned,
       query_acceleration_partitions_scanned,
       query_acceleration_upper_limit_scale_factor
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
  WHERE query_acceleration_partitions_scanned > 0 
  AND start_time >= DATEADD(hour, -24, CURRENT_TIMESTAMP())
  ORDER BY query_acceleration_bytes_scanned DESC;
Copy

Para encontrar as consultas com o maior número de partições verificadas pelo Query Acceleration Service nas últimas 24 horas:

SELECT query_id,
       query_text,
       warehouse_name,
       start_time,
       end_time,
       query_acceleration_bytes_scanned,
       query_acceleration_partitions_scanned,
       query_acceleration_upper_limit_scale_factor
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
  WHERE query_acceleration_partitions_scanned > 0 
  AND start_time >= DATEADD(hour, -24, CURRENT_TIMESTAMP())
  ORDER BY query_acceleration_partitions_scanned DESC;
Copy

Custo do Query Acceleration Service

O Query Acceleration consome créditos pois utiliza recursos de computação sem servidor para executar porções de consultas elegíveis.

O Query Acceleration Service é cobrado como outros recursos sem servidor no Snowflake em que você paga por segundo pelos recursos de computação utilizados. Para saber quantos créditos por hora-computador são consumidos pelo Query Acceleration Service, consulte a “Tabela de crédito de recursos sem servidor” na Tabela de consumo de serviço do Snowflake.

Visualização de informações de faturamento no console clássico

Se você tiver o Query Acceleration Service habilitado para sua conta, a página de faturamento na Classic Console incluirá um warehouse chamado QUERY_ACCELERATION que mostra todos os créditos utilizados pelo serviço em todos os warehouses de sua conta.

A captura de tela abaixo mostra um exemplo das informações de faturamento exibidas para o warehouse QUERY_ACCELERATION:

../_images/query-acceleration-billing-ui.png

Visualização do faturamento usando a exibição QUERY_ACCELERATION_HISTORY do Account Usage

Você pode visualizar os dados de faturamento no Account Usage Exibição QUERY_ACCELERATION_HISTORY.

Exemplo

Esta consulta retorna o número total de créditos utilizados por cada warehouse em sua conta para o Query Acceleration Service (mês até a data):

SELECT warehouse_name,
       SUM(credits_used) AS total_credits_used
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_HISTORY
  WHERE start_time >= DATE_TRUNC(month, CURRENT_DATE)
  GROUP BY 1
  ORDER BY 2 DESC;
Copy

Visualização do faturamento usando a exibição QUERY_ACCELERATION_HISTORY do Organization Usage

Você pode visualizar os dados de faturamento do Query Acceleration Service para todas as contas da sua organização no Organization Usage Exibição QUERY_ACCELERATION_HISTORY.

Exemplo

Esta consulta retorna o número total de créditos utilizados por cada warehouse em cada conta para o Query Acceleration Service (mês até a data):

SELECT account_name,
       warehouse_name,
       SUM(credits_used) AS total_credits_used
  FROM SNOWFLAKE.ORGANIZATION_USAGE.QUERY_ACCELERATION_HISTORY
  WHERE usage_date >= DATE_TRUNC(month, CURRENT_DATE)
  GROUP BY 1, 2
  ORDER BY 3 DESC;
Copy

Visualização do faturamento usando a função QUERY_ACCELERATION_HISTORY

Você também pode visualizar os dados de faturamento usando a função QUERY_ACCELERATION_HISTORY do Information Schema.

Exemplo

O exemplo seguinte utiliza a função QUERY_ACCELERATION_HISTORY para retornar informações sobre as consultas aceleradas por esse serviço dentro das últimas 12 horas:

SELECT start_time,
       end_time,
       credits_used,
       warehouse_name,
       num_files_scanned,
       num_bytes_scanned
  FROM TABLE(INFORMATION_SCHEMA.QUERY_ACCELERATION_HISTORY(
    date_range_start=>DATEADD(H, -12, CURRENT_TIMESTAMP)));
Copy

Avaliação do custo e desempenho

Esta seção inclui exemplos de consultas que podem ajudar você a avaliar o desempenho e o custo da consulta antes e depois de ativar o Query Acceleration Service.

Visualização dos custos de warehouse e Query Acceleration Service

A consulta a seguir calcula os custos do warehouse e do Query Acceleration Service para um warehouse específico. Você pode executar esta consulta depois de ativar o Query Acceleration Service para um warehouse para comparar custos antes e depois de ativar a aceleração de consulta. O período da consulta começa 8 semanas antes do primeiro uso de crédito para o Query Acceleration Service até 8 semanas após o último custo incorrido para o Query Acceleration Service (ou até a data atual).

Nota

  • Esta consulta será mais útil para avaliar o custo do serviço se as propriedades do warehouse e a carga de trabalho permanecerem as mesmas antes e depois de ativar o Query Acceleration Service.

  • Esta consulta retornará resultados somente se tiver havido uso de crédito para consultas aceleradas no warehouse.

Este exemplo de consulta retorna os custos do warehouse e do Query Acceleration Service para my_warehouse:

WITH credits AS (
  SELECT 'QC' AS credit_type,
         TO_DATE(end_time) AS credit_date,
         SUM(credits_used) AS num_credits
    FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_HISTORY
    WHERE warehouse_name = 'my_warehouse'
    AND credit_date BETWEEN
           DATEADD(WEEK, -8, (
             SELECT TO_DATE(MIN(end_time))
               FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_HISTORY
               WHERE warehouse_name = 'my_warehouse'
           ))
           AND
           DATEADD(WEEK, +8, (
             SELECT TO_DATE(MAX(end_time))
               FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_HISTORY
               WHERE warehouse_name = 'my_warehouse'
           ))
  GROUP BY credit_date
  UNION ALL
  SELECT 'WC' AS credit_type,
         TO_DATE(end_time) AS credit_date,
         SUM(credits_used) AS num_credits
    FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY
    WHERE warehouse_name = 'my_warehouse'
    AND credit_date BETWEEN
           DATEADD(WEEK, -8, (
             SELECT TO_DATE(MIN(end_time))
               FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_HISTORY
               WHERE warehouse_name = 'my_warehouse'
           ))
           AND
           DATEADD(WEEK, +8, (
             SELECT TO_DATE(MAX(end_time))
               FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_HISTORY
               WHERE warehouse_name = 'my_warehouse'
           ))
  GROUP BY credit_date
)
SELECT credit_date,
       SUM(IFF(credit_type = 'QC', num_credits, 0)) AS qas_credits,
       SUM(IFF(credit_type = 'WC', num_credits, 0)) AS compute_credits,
       compute_credits + qas_credits AS total_credits,
       AVG(total_credits) OVER (
         PARTITION BY NULL ORDER BY credit_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)
         AS avg_total_credits_7days
  FROM credits
  GROUP BY credit_date
  ORDER BY credit_date;
Copy

Visualização do desempenho da consulta

Esta consulta retorna o tempo médio de execução para consultas elegíveis para aceleração de consulta para um determinado warehouse. O período da consulta começa 8 semanas antes do primeiro uso de crédito para o Query Acceleration Service até 8 semanas após o último custo incorrido para o Query Acceleration Service (ou até a data atual). Os resultados podem ajudar você a avaliar como o desempenho médio da consulta mudou após a ativação do Query Acceleration Service.

Nota

  • Esta consulta será mais útil para avaliar o desempenho da consulta se a carga de trabalho do warehouse permanecer a mesma antes e depois de ativar o Query Acceleration Service.

  • Se a carga de trabalho do warehouse permanecer estável, o valor na coluna num_execs deverá permanecer consistente.

  • Se o valor na coluna num_execs dos resultados da consulta aumentar ou diminuir drasticamente, os resultados desta consulta provavelmente não serão úteis para avaliação de desempenho da consulta.

Este exemplo de consulta retorna o tempo de execução da consulta por dia e calcula a média de 7 dias da semana anterior para consultas qualificadas para aceleração no warehouse my_warehouse:

WITH qas_eligble_or_accelerated AS (
  SELECT TO_DATE(qh.end_time) AS exec_date,
        COUNT(*) AS num_execs,
        SUM(qh.execution_time) AS exec_time,
        MAX(IFF(qh.query_acceleration_bytes_scanned > 0, 1, NULL)) AS qas_accel_flag
    FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY AS qh
    WHERE qh.warehouse_name = 'my_warehouse'
    AND TO_DATE(qh.end_time) BETWEEN
           DATEADD(WEEK, -8, (
             SELECT TO_DATE(MIN(end_time))
               FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_HISTORY
              WHERE warehouse_name = 'my_warehouse'
           ))
           AND
           DATEADD(WEEK, +8, (
             SELECT TO_DATE(MAX(end_time))
               FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_HISTORY
              WHERE warehouse_name = 'my_warehouse'
           ))
    AND (qh.query_acceleration_bytes_scanned > 0
          OR
          EXISTS (
            SELECT 1
              FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_ELIGIBLE AS qae
               WHERE qae.query_id = qh.query_id
               AND qae.warehouse_name = qh.warehouse_name
          )
         )
    GROUP BY exec_date
)
SELECT exec_date,
       SUM(exec_time) OVER (
         PARTITION BY NULL ORDER BY exec_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
       ) /
       NULLIFZERO(SUM(num_execs) OVER (
         PARTITION BY NULL ORDER BY exec_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)
       ) AS avg_exec_time_7days,
      exec_time / NULLIFZERO(num_execs) AS avg_exec_time,
      qas_accel_flag,
      num_execs,
      exec_time
  FROM qas_eligble_or_accelerated;
Copy

A saída da instrução inclui as seguintes colunas:

Coluna

Descrição

EXEC_DATE

Data de execução da consulta.

AVG_EXEC_TIME_7DAYS

O tempo médio de execução dos 7 dias anteriores, incluindo EXEC_DATE.

AVG_EXEC_TIME

O tempo médio de execução da consulta.

QAS_ACCEL_FLAG

1 se alguma consulta foi acelerada; NULL se nenhuma consulta foi acelerada.

NUM_EXECS

Número de consultas aceleradas.

EXEC_TIME

Tempo total de execução de todas as consultas elegíveis para aceleração de consulta.

Compatibilidade com a otimização de pesquisa

A aceleração de consulta e a otimização de pesquisa 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 aceleradas por ambos os serviços varia de acordo com a carga de trabalho e os recursos disponíveis.