Compartilhar via


Gerenciar recursos de computação do pool de SQL dedicado

Este artigo explica como gerenciar os recursos de computação do pool de SQL dedicado (antigo SQL DW) no Azure Synapse Analytics. Você pode reduzir os custos pausando o pool de SQL dedicado ou escalando o pool de SQL dedicado para atender às demandas de desempenho.

O que é o gerenciamento de computação?

A arquitetura do pool de SQL dedicado separa o armazenamento e a computação, permitindo que cada um seja escalado de maneira independente. Como resultado, é possível dimensionar o cálculo para atender às demandas de desempenho independentes do armazenamento de dados. Além disso, você também pode pausar e retomar os recursos de computação.

Uma consequência natural dessa arquitetura é que o preço para computação e armazenamento é separado. Caso você não precise usar o pool SQL dedicado por algum tempo, economize nos custos de computação colocando a computação em pausa.

Dimensionar computação

É possível expandir ou reduzir a computação, ajustando a configuração das unidades de data warehouse (DWUs) do pool de SQL dedicado. O desempenho de consultas e carregamento pode aumentar linearmente à medida que você adiciona mais DWUs.

Para obter as etapas de expansão, consulte os guias de início rápido do portal do Azure, PowerShell ou T-SQL. Também é possível executar operações de expansão usando uma API REST.

Para executar uma operação de escala, o pool de SQL dedicado encerra primeiro todas as consultas de entrada e depois reverte as transações para garantir um estado consistente. A escala ocorrerá somente depois que a reversão de transação estiver completa. Para uma operação de escala, o sistema desanexa a camada de armazenamento dos nós de computação, adiciona nós de computação e, em seguida, reanexa a camada de armazenamento na camada de computação.

Cada pool de SQL dedicado é armazenado como 60 distribuições, que são distribuídas uniformemente para os nós de computação. Adicionar mais nós de computação, adiciona mais potência de computação. À medida que o número de nós de computação aumenta, o número de distribuições por nó de computação diminui, proporcionando mais potência de computação para suas consultas. Da mesma forma, diminuir DWUs reduz o número de nós de computação, o que reduz os recursos de computação para consultas.

A tabela a seguir mostra como o número de distribuições por nó de computação é alterado à medida que as DWUs são alteradas. DW30000c fornece 60 nós de computação e alcança um desempenho de consulta muito maior do que DW100c.

Unidades de data warehouse No. de nós de computação No. de distribuições por nó
DW100c 1 60
DW200c 1 60
DW300c 1 60
DW400c 1 60
DW500c 1 60
DW1000c 2 30
DW1500c 3 20
DW2000c 4 15
DW2500c 5 12
DW3000c 6 10
DW5000c 10 6
DW6000c 12 5
DW7500c 15 4
DW10000c 20 3
DW15000c 30 2
DW30000c 60 1

Localizar o tamanho correto das unidades de data warehouse

Para ver os benefícios de desempenho de escalamento horizontal, especialmente para unidades de data warehouse grandes, convém usar pelo menos um conjunto de dados de 1 TB. Para encontrar o melhor número de DWUs do pool de SQL dedicado, tente expandir e reduzir. Executar algumas consultas com números diferentes de DWUs após o carregamento dos dados. Como o dimensionamento é rápido, você pode experimentar vários níveis de desempenho diferentes durante uma hora ou menos.

Recomendações para encontrar o melhor número de DWUs:

  • Para um pool de SQL dedicado em desenvolvimento, comece selecionando um número menor de DWUs. Um bom ponto de partida é DW400c ou DW200c.
  • Monitore o desempenho do seu aplicativo, observando o número de DWUs selecionadas comparado ao desempenho que você observar.
  • Suponha uma escala linear e determinar quanto é necessário para aumentar ou diminuir as DWUs.
  • Continue fazendo ajustes até alcançar um nível de desempenho ideal para seus requisitos de negócios.

Quando escalar horizontalmente

A expansão de DWUs afeta os seguintes aspectos do desempenho:

  • Melhora o desempenho linear do sistema para verificações, agregações e instruções CTAS
  • Aumenta o número de leitores e gravadores para carregamento de dados
  • Número máximo de consultas simultâneas e slots de simultaneidade

Recomendações para quando expandir DWUs:

  • Antes de executar uma operação de transformação ou carregamento de dados pesados, escale horizontalmente para tornar os dados disponíveis mais rapidamente.
  • Durante o horário comercial de pico, escale dimensionalmente para acomodar um número de consultas simultâneas maior.

E se a expansão não melhorar o desempenho?

Adicionar DWUs aumenta o paralelismo. Se o trabalho for dividido uniformemente entre os nós de computação, o paralelismo adicionar irá melhorar o desempenho de consultas. Se a expansão não alterar seu desempenho, há alguns motivos pelos quais isso pode acontecer. Os dados podem estar distorcidos nas distribuições ou as consultas podem estar introduzindo uma grande quantidade de movimentação de dados. Para investigar os problemas de desempenho de consultas, consulte Solução de problemas de desempenho.

Pausar e retomar computação

Pausar a computação faz a camada de armazenamento desanexar dos nós de computação. Os recursos de computação são liberados da sua conta. Você não é cobrado pela computação enquanto a computação está pausada. Retomar a computação reanexa o armazenamento aos nós de computação e retoma as cobranças de computação.

Ao pausar um pool de SQL dedicado:

  • Os recursos de computação e memória são retornados ao pool de recursos disponíveis no data center.
  • Os custos da unidade de Data Warehouse serão nulos durante a pausa.
  • O armazenamento de dados não é afetado e seus dados permanecem intactos.
  • Todas as operações em execução ou na fila são canceladas.
  • Os contadores DMV são redefinidos.

Ao retomar um pool de SQL dedicado:

  • O pool de SQL dedicado adquire recursos de computação e memória para sua configuração de DWUs.
  • A computação cobra pela retomada de DWUs.
  • Os dados tornam-se disponíveis.
  • Depois que o pool de SQL dedicado estiver online, você precisará reiniciar suas consultas de carga de trabalho.

Se desejar que o seu pool de SQL dedicado fiquem sempre acessível, considere reduzi-lo para o menor tamanho em vez de pausar.

Para etapas de pausa e retomada, consulta os guias de início rápido do portal do Azure ou PowerShell. Também é possível usar a API REST de pausa ou a API REST de retomada.

Esvaziar as transações antes de pausar ou dimensionar

É recomendável que as transações existentes sejam concluídas antes de iniciar uma operação de pausa ou de escala.

Ao pausar ou escalar seu pool de SQL dedicado, nos bastidores, suas consultas são canceladas quando você inicia a solicitação de pausa ou escala. Cancelar uma simples consulta SELECT é uma operação rápida e quase não terá impacto sobre o tempo que leva para pausar ou escalar sua instância. No entanto, consultas transacionais, que modificam seus dados ou a estrutura dos dados, não conseguirão parar rapidamente. As consultas transacionais, por definição, devem ser concluídas na íntegra ou reverter suas alterações.

Reverter o trabalho concluído por uma consulta transacional pode levar tanto tempo, ou até mais, quanto a alteração original que a consulta estava aplicando. Por exemplo, se você cancelar uma consulta que estava excluindo linha e estava em execução por uma hora, poderá levar uma hora para o sistema inserir de volta as linhas excluídas. Se você executar a pausa ou escala enquanto as transações estiverem em andamento, a pausa ou escala poderão demorar muito tempo, pois precisam esperar que a reversão seja concluída antes de prosseguir.

Para obter mais informações, consulte Usar transações e Otimizar transações.

Automatizar o gerenciamento de computação

Para automatizar as operações de gerenciamento de computação, consulte Usar o Azure Functions para gerenciar recursos de computação do pool de SQL dedicado.

Cada operação de escala horizontal, pausa e retomada pode demorar vários minutos para ser concluída. Se você estiver escalando, pausando ou retomando automaticamente, é recomendável implementar a lógica para assegurar que determinadas operações sejam concluídas antes de prosseguir com outra ação. Verificar o estado do pool de SQL dedicado por meio de vários pontos de extremidade permite que você implemente corretamente a automação dessas operações.

Para verificar o estado do pool de SQL dedicado, consulte os guias de início rápido do PowerShell ou T-SQL. Você também pode verificar o estado do pool de SQL dedicado com uma API REST.

Permissões

Escalar o pool de SQL dedicado exige as permissões descritas em ALTER DATABASE. Pausar e retomar exige a função Colaborador do DB SQL, especificamente Microsoft.Sql/servers/databases/action.