Práticas recomendadas do SQL Server para otimizar o desempenho no Azure Stack Hub

Este artigo fornece as melhores práticas do SQL Server para otimizar SQL Server e melhorar o desempenho em VMs (máquinas virtuais) do Microsoft Azure Stack Hub. Ao executar SQL Server em VMs do Azure Stack Hub, use as mesmas opções de ajuste de desempenho de banco de dados aplicáveis a SQL Server em um ambiente de servidor local. O desempenho de um banco de dados relacional em uma nuvem do Azure Stack Hub depende de muitos fatores, incluindo o tamanho da família de uma VM e a configuração dos discos de dados.

Ao criar SQL Server imagens, considere provisionar suas VMs no portal do Azure Stack Hub. Baixe a Extensão IaaS do SQL do Gerenciamento do Marketplace no portal do administrador do Azure Stack Hub e baixe sua escolha de SQL Server imagens de VM. Isso inclui SQL Server 2016 SP1, SQL Server 2016 SP2 e SQL Server 2017.

Observação

Embora o artigo descreva como provisionar uma VM SQL Server usando o portal do Azure global, as diretrizes também se aplicam ao Azure Stack Hub com as seguintes diferenças: O SSD não está disponível para o disco do sistema operacional e há pequenas diferenças na configuração de armazenamento.

Nas imagens de VM, para SQL Server, você só pode usar BYOL (traga sua própria licença). Para o Windows Server, o modelo de licença padrão é PAYG (pagamento conforme o uso). Para obter informações detalhadas sobre o modelo de licença do Windows Server na VM, consulte o artigo Perguntas frequentes sobre o Windows Server no Azure Stack Hub Marketplace.

Obter o melhor desempenho para SQL Server em VMs do Azure Stack Hub é o foco deste artigo. Se a sua carga de trabalho tem menos demanda, talvez você não precise realizar todas as otimizações recomendadas. Considere suas necessidades de desempenho e padrões de carga de trabalho ao avaliar essas recomendações.

Observação

Para obter diretrizes de desempenho para SQL Server em VMs do Azure, consulte este artigo.

Lista de verificação das práticas recomendadas do SQL Server

A lista de verificação a seguir destina-se ao desempenho ideal de SQL Server em VMs do Azure Stack Hub:

Área Otimizações
Tamanho da VM DS3 ou superior para SQL Server Enterprise edição.

DS2 ou superior para SQL Server Standard edição e Edição Web.
Armazenamento Use uma família de VMs que dê suporte ao armazenamento Premium.
Discos Use um mínimo de dois discos de dados (um para arquivos de log e outro para arquivo de dados e TempDB) e escolha o tamanho do disco com base em suas necessidades de capacidade. Defina os locais de arquivo de dados padrão para esses discos durante a instalação do SQL Server.

Evite usar o sistema operacional ou discos temporários para armazenamento de banco de dados ou registro em log.
Distribua vários discos de dados do Azure para obter maior taxa de transferência de E/S usando Espaços de Armazenamento.

Formate com os tamanhos de alocação documentados.
E/S Habilite a inicialização instantânea de arquivos para arquivos de dados.

Limite o crescimento automático nos bancos de dados com incrementos fixos razoavelmente pequenos (64 MB a 256 MB).

Desabilite a redução automática no banco de dados.

Configure locais de arquivo de banco de dados e backup padrão em discos de dados, não no disco do sistema operacional.

Habilite as páginas bloqueadas.

Aplique SQL Server service packs e atualizações cumulativas.
Recursos específicos Faça backup diretamente no armazenamento de blobs (se houver suporte da versão SQL Server em uso).

Para obter mais informações sobre como e por que fazer essas otimizações, examine os detalhes e as diretrizes fornecidos nas seções a seguir.

Diretrizes de tamanho de VM

Para aplicativos sensíveis ao desempenho, os seguintes tamanhos de VM são recomendados :

  • edição SQL Server Enterprise: DS3 ou superior

  • SQL Server Standard edição e edição da Web: DS2 ou superior

Com o Azure Stack Hub, não há diferença de desempenho entre o DS e DS_v2 série da família de VMs.

Orientação de armazenamento

As VMs da série DS (juntamente com a série DSv2) no Azure Stack Hub fornecem a taxa de transferência máxima do disco do sistema operacional e do disco de dados (IOPS). Uma VM da série DS ou DSv2 fornece até 1.000 IOPS para o disco do sistema operacional e até 2.300 IOPS por disco de dados, independentemente do tipo ou tamanho do disco escolhido.

A taxa de transferência do disco de dados é determinada exclusivamente com base na série da família de VMs. Você pode consultar este artigo para identificar a taxa de transferência do disco de dados por série de família de VMs.

Observação

Para cargas de trabalho de produção, selecione uma VM da série DS ou da série DSv2 para fornecer o máximo possível de IOPS no disco do sistema operacional e nos discos de dados.

Ao criar uma conta de armazenamento no Azure Stack Hub, a opção de replicação geográfica não tem efeito porque essa funcionalidade não está disponível no Azure Stack Hub.

Diretrizes de discos

Há três tipos de disco main em uma VM do Azure Stack Hub:

  • Disco do sistema operacional: Quando você cria uma VM do Azure Stack Hub, a plataforma anexa pelo menos um disco (rotulado como a unidade C ) à VM do disco do sistema operacional. Cada disco é um VHD armazenado como um blob de páginas no armazenamento.

  • Disco temporário: As VMs do Azure Stack Hub contêm outro disco chamado disco temporário (rotulado como a unidade D ). É um disco localizado no nó que pode ser usado como espaço de rascunho.

  • Discos de dados: Você pode anexar discos adicionais à VM como discos de dados e esses discos são armazenados no armazenamento como blobs de páginas.

As seções a seguir descrevem as recomendações para usar esses diferentes discos.

Disco do sistema operacional

Um disco do sistema operacional é um VHD que pode ser inicializado e montado como uma versão em execução de um sistema operacional e é rotulado como a unidade C .

Disco temporário

A unidade de armazenamento temporária, rotulada como a unidade D , não é persistente. Não armazene nenhum dado que você não esteja disposto a perder na unidade D . Isso inclui os arquivos de banco de dados do usuário e os arquivos de log de transações do usuário.

É recomendável armazenar o TempDB em um disco de dados, pois cada disco de dados fornece um máximo de até 2.300 IOPS por disco de dados.

Discos de dados

  • Use discos de dados para arquivos de dados e de log. Se você não estiver usando a distribuição de disco, use dois discos de dados de uma VM que dê suporte ao armazenamento Premium, em que um disco contém os arquivos de log e o outro contém os dados e os arquivos TempDB. Cada disco de dados fornece uma série de IOPS dependendo da família de VMs, conforme descrito em Tamanhos de VM com suporte no Azure Stack Hub. Se você estiver usando uma técnica de distribuição de disco, como Espaços de Armazenamento, coloque todos os dados e arquivos de log na mesma unidade (incluindo TempDB). Essa configuração fornece o número máximo de IOPS disponíveis para SQL Server consumir, independentemente de qual arquivo precise deles em qualquer momento específico.

Observação

Quando você provisiona uma VM do SQL Server no portal, tem a opção de editar sua configuração de armazenamento. Dependendo da configuração, o Azure Stack Hub configura um ou mais discos. Vários discos são combinados em um único pool de armazenamento. Tanto os dados quanto os arquivos de log residem juntos nessa configuração.

  • Distribuição de disco: Para obter mais taxa de transferência, você pode adicionar discos de dados adicionais e usar a distribuição de disco. Para determinar o número de discos de dados necessários, analise o número de IOPS necessários para seus arquivos de log e para seus dados e arquivos TempDB. Observe que os limites de IOPS são por disco de dados com base na família de séries de VMs e não com base no tamanho da VM. No entanto, os limites de largura de banda de rede são baseados no tamanho da VM. Consulte as tabelas sobre tamanhos de VM no Azure Stack Hub para obter mais detalhes. Use as seguintes diretrizes:

    • Para o Windows Server 2012 ou posterior, use Espaços de Armazenamento com as seguintes diretrizes:

      1. Defina o intercalar (tamanho da faixa) como 64 KB (65.536 bytes) para cargas de trabalho de OLTP (processamento de transações online) e 256 KB (262.144 bytes) para cargas de trabalho de data warehouse para evitar o impacto no desempenho devido ao desalinhamento da partição. Isso deve ser definido com o PowerShell.

      2. Defina a contagem de colunas = número de discos físicos. Use o PowerShell ao configurar mais de oito discos (não Gerenciador do Servidor interface do usuário).

        Por exemplo, o PowerShell a seguir cria um novo pool de armazenamento com o tamanho de intercalação definido como 64 KB e o número de colunas como 2:

        $PoolCount = Get-PhysicalDisk -CanPool $True
        $PhysicalDisks = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*2" -or $_.FriendlyName -like "*3"}
        
        New-StoragePool -FriendlyName "DataFiles" -StorageSubsystemFriendlyName "Storage Spaces*" -PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName "DataFiles" -Interleave 65536 -NumberOfColumns 2 -ResiliencySettingName simple -UseMaximumSize |Initialize-Disk -PartitionStyle GPT -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisks" -AllocationUnitSize 65536 -Confirm:$false
        
  • Determine o número de discos associados ao seu pool de armazenamento com base nas suas expectativas de carga. Tenha em mente que tamanhos de VM diferentes permitem quantidades diferentes de discos de dados anexados. Para obter mais informações, consulte Tamanhos de VM com suporte no Azure Stack Hub.

  • Para obter o máximo possível de IOPS para discos de dados, a recomendação é adicionar o número máximo de discos de dados compatíveis com o tamanho da VM e usar a distribuição de disco.

  • Tamanho da unidade de alocação do NTFS: Ao formatar o disco de dados, recomendamos que você use um tamanho de unidade de alocação de 64 KB para arquivos de dados e de log, bem como TempDB.

  • Práticas de gerenciamento de disco: Ao remover um disco de dados, interrompa o serviço SQL Server durante a alteração. Além disso, não altere as configurações de cache nos discos, pois ele não fornece melhorias de desempenho.

Aviso

A falha ao interromper o Serviço SQL durante essas operações pode causar corrupção no banco de dados.

Diretrizes de E/S

  • Considere a habilitação da inicialização instantânea de arquivo a fim de reduzir o tempo necessário para alocação inicial do arquivo. Para aproveitar a inicialização instantânea de arquivos, conceda a conta de serviço do SQL Server (MSSQLSERVER) com SE_MANAGE_VOLUME_NAME e adicione-a à política de segurança Executar Tarefas de Manutenção de Volume. Se você estiver usando uma imagem de plataforma SQL Server para o Azure, a conta de serviço padrão (NT Service\MSSQLSERVER) não será adicionada à política de segurança Executar Tarefas de Manutenção de Volume. Em outras palavras, a inicialização instantânea de arquivo não está habilitada em uma imagem da plataforma SQL Server Azure. Depois de adicionar a conta de serviço do SQL Server à política de segurança Executar Tarefas de Manutenção de Volume , reinicie o serviço do SQL Server. Talvez existam considerações de segurança sobre a utilização desse recurso. Para obter mais informações, consulte Inicialização de arquivos de bancos de dados.

  • O crescimento automático é uma contingência para um crescimento inesperado. Não gerencie seus dados e registre o crescimento no dia a dia com o crescimento automático. Se o crescimento automático for usado, aumente previamente o arquivo usando a opção Tamanho .

  • Verifique se a redução automática está desabilitada a fim de evitar uma sobrecarga desnecessária que pode afetar negativamente o desempenho.

  • Configure os locais do arquivo de banco de dados e backup padrão. Use as recomendações neste artigo e faça as alterações na janela Propriedades do servidor. Para obter instruções, confira Exibir ou alterar os locais padrão de arquivos de log e de dados (SQL Server Management Studio). A captura de tela a seguir mostra onde fazer essas alterações:

    Exibir ou alterar os locais padrão

  • Estabeleça páginas bloqueadas a fim de reduzir a ES e quaisquer atividades de paginação. Para saber mais, confira Habilitar a opção Bloquear Páginas na Memória (Windows).

  • Considere compactar todos os arquivos de dados ao transferir para dentro/para fora do Azure Stack Hub, incluindo backups.

Diretriz específica do recurso

Algumas implantações podem obter outros benefícios de desempenho usando técnicas mais avançadas de configuração. A lista a seguir destaca alguns SQL Server recursos que podem ajudá-lo a obter um melhor desempenho:

  • Faça backup no armazenamento do Azure. Ao fazer backups para SQL Server em execução em VMs do Azure Stack Hub, você pode usar SQL Server Backup para URL. Esse recurso foi disponibilizado a partir do SQL Server 2012 SP1 CU2 e é recomendado para fazer o backup em discos de dados anexados.

    Ao fazer backup ou restaurar usando o armazenamento do Azure, siga as recomendações fornecidas no SQL Server As práticas recomendadas de Backup para URL e solução de problemas e restauração de backups armazenados no Microsoft Azure. Você também pode automatizar esses backups usando o Backup Automatizado para SQL Server em VMs do Azure.

  • Faça backup no armazenamento do Azure Stack Hub. Você pode fazer backup no armazenamento do Azure Stack Hub de maneira semelhante à do backup no Armazenamento do Azure. Ao criar um backup dentro do SSMS (SQL Server Management Studio), você precisa inserir as informações de configuração manualmente. Você não pode usar o SSMS para criar o contêiner de armazenamento ou a Assinatura de Acesso Compartilhado. O SSMS só se conecta a assinaturas do Azure, não a assinaturas do Azure Stack Hub. Em vez disso, você precisa criar a conta de armazenamento, o contêiner e a Assinatura de Acesso Compartilhado no portal do Azure Stack Hub ou com o PowerShell.

    Backup do SQL Server

    Observação

    A Assinatura de Acesso Compartilhado é o token SAS do portal do Azure Stack Hub, sem o '?' à esquerda na cadeia de caracteres. Se você usar a função de cópia do portal, precisará excluir o '?' à esquerda para que o token funcione no SQL Server.

    Depois de configurar e configurar o Destino de Backup no SQL Server, você poderá fazer backup no armazenamento de blobs do Azure Stack Hub.

Próximas etapas

Usando serviços ou criando aplicativos para o Azure Stack Hub