Configurar e manter o desempenho

Concluído

Compreender as funcionalidades do SQL Azure é importante para fornecer um desempenho consistente. Também é importante entender as opções e as restrições que você precisa configurar na Instância Gerenciada de SQL do Azure e no Banco de Dados SQL do Azure que podem afetar o desempenho. Isso inclui o seguinte:

  • Tópicos do banco de dados tempdb
  • Configuração de bancos de dados
  • Configuração de arquivos e grupos de arquivos
  • Configuração do grau máximo de paralelismo
  • Usando o Resource Governor
  • Manutenção de índices e estatísticas

Tempdb

O banco de dados tempdb do sistema é um importante recurso compartilhado usado pelos aplicativos. Garantir a configuração correta de tempdb pode afetar sua capacidade de oferecer um desempenho consistente. Você usa tempdb da mesma forma tanto para o SQL Server quanto para o SQL do Azure. Observe, no entanto, que sua capacidade de configurar tempdb é diferente, incluindo o posicionamento dos arquivos, o número e o tamanho dos arquivos e as opções de configuração de tempdb.

Os arquivos de banco de dados de tempdb sempre são armazenados automaticamente em discos SSD locais, de modo que o desempenho de E/S não deve ser um problema.

Os profissionais que trabalham com o SQL Server geralmente usam mais de um arquivo de banco de dados para particionar as alocações para tabelas tempdb. Para o Banco de Dados SQL do Azure, o número de arquivos é dimensionado com o número de vCores (por exemplo, dois vCores equivalem a quatro arquivos.) com um máximo de 16. O número de arquivos não é configurável por meio do T-SQL contra tempdb, mas você pode configurá-lo alterando a opção de implantação. O tamanho máximo de tempdb é dimensionado de acordo com o número de vCores. Você obtém 12 arquivos com a Instância Gerenciada de SQL, independentemente dos vCores.

A opção MIXED_PAGE_ALLOCATION do banco de dados está definida como OFF e AUTOGROW_ALL_FILES está definida como ON. Você não pode configurar isso, mas, assim como no SQL Server, esses são os padrões recomendados.

O recurso tempdb de otimização de metadados introduzido no SQL Server 2019, que pode aliviar a contenção de trava pesada, não está disponível atualmente no Banco de Dados SQL do Azure ou na Instância Gerenciada de SQL do Azure.

Configuração do banco de dados

Normalmente, você configura um banco de dados com as instruções T-SQL ALTER DATABASE e ALTER DATABASE SCOPED CONFIGURATION. Muitas das opções de configuração de desempenho estão disponíveis para o SQL Azure. Consulte a referência de T-SQL, ALTER DATABASE e ALTER DATABASE SCOPED CONFIGURATION para ver as diferenças entre o SQL Server, o Banco de Dados SQL do Azure e a Instância Gerenciada de SQL do Azure.

Com relação ao desempenho, uma opção que você não pode alterar é o modelo de recuperação do banco de dados. O padrão é a recuperação completa. Isso garante que o banco de dados possa atender aos SLAs (contratos de nível de serviço) do Azure. Sendo assim, não há suporte para o registro em log mínimo para operações em massa. O registro em log mínimo para operações em massa tem suporte para tempdb.

Arquivos e grupos de arquivos

Os profissionais que trabalham com o SQL Server costumam usar arquivos e grupos de arquivo para aprimorar o desempenho de E/S por meio do posicionamento de arquivos físicos. O SQL Azure não permite que os usuários coloquem arquivos em sistemas de disco específicos. No entanto, o SQL Azure tem compromissos de recursos relacionados ao desempenho de E/S com relação a taxas, IOPS e latências. Dessa forma, abstrair o usuário do posicionamento físico dos arquivos pode ser benéfico.

O Banco de Dados SQL do Azure tem apenas um arquivo de banco de dados (a Hiperescala geralmente tem vários), e o tamanho máximo é configurado por meio das interfaces do Azure. Não há nenhuma funcionalidade para criar arquivos adicionais.

A Instância Gerenciada de SQL do Azure suporta a adição de arquivos de banco de dados e a configuração de tamanhos, mas não ao posicionamento físico dos arquivos. Você pode usar o número de arquivos e o tamanho dos arquivos da Instância Gerenciada de SQL para melhorar o desempenho de E/S. Além disso, os grupos de arquivos definidos pelo usuário têm suporte na Instância Gerenciada de SQL para fins de gerenciamento.

Configuração de MAXDOP

O grau máximo de paralelismo (MAXDOP) pode afetar o desempenho de consultas individuais. O SQL Server e o SQL Azure tratam o MAXDOP da mesma maneira. Você pode configurar o MAXDOP no SQL Azure de maneira semelhante à sua configuração no SQL Server, usando as seguintes técnicas:

  • ALTER DATABASE SCOPED CONFIGURATION para configurar MAXDOP tem suporte no SQL Azure.
  • O procedimento armazenado sp_configure para "grau máximo de paralelismo" tem suporte na Instância Gerenciada de SQL.
  • As dicas de consulta de MAXDOP têm suporte completo.
  • A configuração de MAXDOP com o Resource Governor tem suporte na Instância Gerenciada de SQL.

Administrador de Recursos

O Resource Governor é um recurso do SQL Server que pode ser usado para controlar o uso de recursos para cargas de trabalho por meio de E/S, CPU e memória. Observe que, para pools e grupos de carga de trabalho definidos pelo usuário, o Resource Governor tem suporte para a Instância Gerenciada de SQL, mas não para o Banco de Dados SQL do Azure.

Manutenção de índices

A criação e a manutenção de índices para o SQL do Azure são exatamente iguais ás do SQL Server. Por exemplo, a criação, a recompilação e a reorganização de índices têm suporte completo, assim como ocorre com o SQL Server. Isso inclui índices online e retomáveis.

Manutenção de estatísticas

O SQL Server e o SQL Azure tratam as estatísticas da mesma maneira. Opções de estatísticas automáticas para bancos de dados estão disponíveis para ambos.

Agora que você aprendeu algumas das opções de configuração e manutenção para o desempenho do SQL do Azure, complete a verificação de conhecimentos a seguir antes de prosseguir para a próxima unidade.

Verificação de conhecimentos

1.

O número de arquivos de tempdb é configurável para o Banco de Dados SQL do Azure por meio do qual método?

2.

Com qual método é possível configurar o desempenho de E/S do Banco de Dados SQL do Azure?

3.

Como manter os índices com o SQL Azure?