Partilhar via


Gerenciar recursos de computação para pool SQL dedicado

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

O que é o gerenciamento de computação?

A arquitetura do conjunto de SQL dedicado faz a separação entre armazenamento e computação, ao permitir o dimensionamento independente de cada. Como resultado, pode dimensionar a computação para satisfazer as necessidades de desempenho independentemente do armazenamento de dados. Também pode colocar em pausa e retomar recursos de computação.

Uma consequência natural dessa arquitetura é que os preços para computação e armazenamento são separados. Se não precisar de utilizar o conjunto de SQL dedicado durante algum tempo, poderá poupar nos custos de computação ao colocar em pausa a computação.

Computação de dimensionamento

Você pode expandir ou reduzir a computação ajustando a configuração de unidades de data warehouse (DWUs) para seu pool SQL dedicado. O desempenho de carregamento e consulta pode aumentar linearmente à medida que você adiciona mais DWUs.

Para obter etapas de expansão, consulte os inícios rápidos para o portal do Azure, PowerShell ou T-SQL. Você também pode executar operações de expansão usando uma API REST.

Para executar uma operação de escala, o pool SQL dedicado primeiro elimina todas as consultas de entrada e, em seguida, reverte as transações para garantir um estado consistente. O dimensionamento só ocorre depois de concluída a reversão de transação. Para uma operação de escala, o sistema separa a camada de armazenamento dos nós de computação, adiciona nós de computação e, em seguida, reconecta a camada de armazenamento à camada de computação.

Cada pool 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 poder 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, fornecendo mais poder de computação para suas consultas. Da mesma forma, a diminuição das 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 muda à medida que as DWUs mudam. O DW30000c fornece 60 nós de computação e alcança um desempenho de consulta muito maior do que o DW100c.

Unidades do armazém de dados # de nós de computação # 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

Encontrar o tamanho certo das unidades de armazém de dados

Para ver os benefícios de desempenho da expansão, especialmente para unidades de data warehouse maiores, você deseja usar pelo menos um conjunto de dados de 1 TB. Para encontrar o melhor número de DWUs para seu pool SQL dedicado, tente dimensionar para cima e para baixo. Execute algumas consultas com números diferentes de DWUs depois de carregar seus dados. Como o dimensionamento é rápido, você pode tentar vários níveis de desempenho em uma hora ou menos.

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

  • Para um pool 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 em comparação com o desempenho observado.
  • Suponha uma escala linear e determine o quanto você precisa aumentar ou diminuir as DWUs.
  • Continue fazendo ajustes até atingir um nível de desempenho ideal para seus requisitos de negócios.

Quando expandir

A expansão das DWUs afeta estes aspetos do desempenho:

  • Linearly melhora o desempenho do sistema para verificações, agregações e instruções CTAS
  • Aumenta o número de leitores e gravadores para carregar 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 pesada de carregamento ou transformação de dados, dimensione-se para disponibilizar os dados mais rapidamente.
  • Durante o horário comercial de pico, dimensione para acomodar um número maior de consultas simultâneas.

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 adicional melhorará o desempenho da consulta. Se a expansão não alterar seu desempenho, há algumas razões pelas quais isso pode acontecer. Seus dados podem estar distorcidos nas distribuições ou as consultas podem estar introduzindo uma grande quantidade de movimentação de dados. Para investigar problemas de desempenho de consulta, consulte Solução de problemas de desempenho.

Colocar em pausa e retomar a computação

Pausar a computação faz com que a camada de armazenamento se desanexe dos nós de computação. Os recursos de computação são liberados da sua conta. Você não será cobrado pela computação enquanto a computação estiver pausada. Retomar a computação reconecta o armazenamento aos nós de computação e retoma as cobranças pela computação.

Quando você pausa um pool SQL dedicado:

  • Os recursos de computação e memória são retornados ao pool de recursos disponíveis no data center.
  • Os custos unitários do armazém de dados são zero durante a pausa.
  • O armazenamento de dados não é afetado e os seus dados permanecem intactos.
  • Todas as operações em execução ou enfileiradas são canceladas.
  • Os contadores do Detran são redefinidos.

Quando você retoma um pool SQL dedicado:

  • O pool SQL dedicado adquire recursos de computação e memória para sua configuração DWUs.
  • Calcule as cobranças para o seu currículo de DWUs.
  • Os seus dados ficam disponíveis.
  • Depois que o pool SQL dedicado estiver online, você precisará reiniciar suas consultas de carga de trabalho.

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

Para conhecer as etapas de pausa e retomada, consulte os inícios rápidos do portal do Azure ou do PowerShell. Você também pode usar a API REST de pausa ou a API REST de currículo.

Drenar transações antes de colocar em pausa ou dimensionar

Recomendamos permitir que as transações existentes sejam concluídas antes de iniciar uma operação de pausa ou dimensionamento.

Quando você pausa ou dimensiona seu pool 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 tem efeito sobre o tempo necessário para pausar ou dimensionar sua instância. No entanto, as consultas transacionais, que modificam seus dados ou a estrutura dos dados, podem não ser capazes de parar rapidamente. As consultas transacionais, por definição, têm de ser concluídas na sua totalidade ou têm de reverter as alterações.

A reversão do trabalho concluído por uma consulta transacional pode demorar tanto tempo, ou mais, como a alteração original que a consulta aplicou. Por exemplo, se você cancelar uma consulta que estava excluindo linhas e já está em execução há uma hora, o sistema pode levar uma hora para inserir novamente as linhas excluídas. Se você executar pausa ou dimensionamento enquanto as transações estão em andamento, sua pausa ou dimensionamento pode parecer levar muito tempo, porque a pausa e o dimensionamento precisam aguardar a conclusão da reversão antes que ela possa prosseguir.

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

Automatize 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 para seu pool SQL dedicado.

Cada uma das operações de escalamento horizontal, pausa e retoma pode demorar vários minutos a concluir. Se você estiver dimensionando, pausando ou retomando automaticamente, recomendamos implementar a lógica para garantir que determinadas operações sejam concluídas antes de prosseguir com outra ação. Verificar o estado do pool SQL dedicado por meio de vários pontos de extremidade permite que você implemente corretamente a automação de tais operações.

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

Permissões

O dimensionamento do pool SQL dedicado requer as permissões descritas em ALTER DATABASE. Pausar e retomar exigem a função de Colaborador do Banco de Dados SQL , especificamente Microsoft.Sql/servers/databases/action.