Atualizações e opções de configuração recomendadas para SQL Server com cargas de trabalho de alto desempenho
Este artigo inclui uma lista de melhorias de desempenho e opções de configuração disponíveis para o SQL Server 2012 e versões posteriores.
Versão original do produto: SQL Server 2014, SQL Server 2012
Número original do KB: 2964518
Aplicar as atualizações recomendadas e melhorar o desempenho do SQL Server 2014 e do SQL Server 2012
Este artigo descreve as melhorias e alterações de desempenho disponíveis para as versões do SQL Server 2014 e do SQL Server 2012 por meio de várias atualizações de produto e opções de configuração. Você pode considerar a aplicação dessas atualizações para melhorar o desempenho da instância do SQL Server. O grau de melhoria que você verá dependerá de vários fatores que incluem padrão de carga de trabalho, pontos de contenção, layout do processador (número de grupos de processadores, soquetes, nós NUMA, núcleos em um nó NUMA) e quantidade de memória presente no sistema. A equipe de suporte do SQL Server usou essas atualizações e alterações de configuração para obter ganhos de desempenho razoáveis para cargas de trabalho do cliente que usavam sistemas de hardware que tinham vários nós NUMA e muitos processadores. A equipe de suporte continuará atualizando este artigo com outras atualizações no futuro.
Sistemas high-end Um sistema high-end normalmente tem vários soquetes, oito núcleos ou mais por soquete e meio terabyte ou mais de memória.
Observação
No SQL Server 2016 e versões posteriores, muitos dos sinalizadores de rastreamento mencionados neste artigo são o comportamento padrão e você não precisa habilitá-los nessas versões.
As recomendações são agrupadas em três tabelas da seguinte forma:
- A Tabela 1 contém as atualizações recomendadas com mais frequência e os sinalizadores de rastreamento para escalabilidade em sistemas high-end.
- A Tabela 2 contém recomendações e orientações para ajuste de desempenho adicional.
- A Tabela 3 contém correções de escalabilidade adicionais que foram incluídas junto com uma atualização cumulativa.
Tabela 1. Atualizações importantes e sinalizadores de rastreamento para sistemas high-end
Examine a tabela a seguir e habilite os sinalizadores de rastreamento na coluna Sinalizador de rastreamento depois de verificar se sua instância do SQL Server atende aos requisitos na coluna Versão aplicável e intervalos de compilação.
Observação
Versão e build aplicáveis indicam a atualização específica na qual o sinalizador de alteração ou rastreamento foi introduzido. Se nenhuma for especificada, todas as CUs na controladora de armazenamento serão incluídas.
Versão e build não aplicáveis indica a atualização específica na qual o sinalizador de alteração ou rastreamento se tornou o comportamento padrão. Portanto, apenas aplicar essa atualização será suficiente para obter os benefícios.
Importante
Ao habilitar correções com sinalizadores de rastreamento em ambientes Always On, lembre-se de que você precisa habilitar os sinalizadores de correção e rastreamento em todas as réplicas que fazem parte do Grupo de Disponibilidade.
Cenário e sintoma a serem considerados | Sinalizador de rastreamento | Versão aplicável e intervalos de compilação | Não aplicável Versão e intervalos de compilação | Artigo da Base de Conhecimento/Link do blog que fornece mais detalhes |
---|---|---|---|---|
|
T8048 |
|
|
|
|
T8079 | SQL Server 2014 SP2 para SP/atual |
|
|
|
T9024 | Pacote de atualização cumulativa 3 para o SQL Server 2012 Service Pack 1 para o SP2 SQL Server 2014 RTM |
|
CORREÇÃO: Alto valor do contador de "esperas de gravação de log" em uma instância do SQL Server 2012 ou SQL Server 2014 |
Sua instância do SQL Server está lidando com milhares de redefinições de conexão devido ao pool de conexões. | T1236 | Pacote de atualização cumulativa 9 para SQL Server 2012 Service Pack 1 para SP2 Atualização cumulativa 1 para SQL Server 2014 |
|
|
|
T1118 |
|
|
Aprimoramentos de simultaneidade para o banco de dados tempdb OBSERVAÇÃO Ative o sinalizador de rastreamento e adicione vários arquivos de dados para o banco de dados tempdb. |
|
T1117 |
|
|
Recomendações para reduzir a contenção de alocação no banco de dados tempdb do SQL Server. |
A contenção de spinlock pesada SOS_CACHESTORE ou seus planos estão sendo removidos com frequência em cargas de trabalho de consulta ad hoc. |
T174 |
|
Nenhum |
|
|
T8032 |
|
Nenhum |
|
As estatísticas existentes não são atualizadas com frequência devido ao grande número de linhas na tabela. | T2371 |
|
Nenhum | |
|
T7471 | SQL Server 2014 SP1 CU6 para SP/atual | Nenhum | Aumentando o desempenho das estatísticas de atualização com o SQL 2014 e o SQL 2016 |
CHECKDB leva muito tempo para bancos de dados grandes. |
|
|
Nenhum | |
CHECKDB leva muito tempo para bancos de dados grandes. | T2566 |
|
Nenhum |
|
A execução de consultas simultâneas de data warehouse que levam muito tempo de compilação resulta em RESOURCE_SEMAPHORE_QUERY_COMPILE esperas. |
T6498 | Pacote de atualização cumulativa 6 para SQL Server 2014 para SP1 |
|
|
Você está solucionando problemas específicos de desempenho de consulta As correções do Optimizer estão desativadas por padrão. | T4199 |
|
Nenhum | |
Você experimenta um desempenho lento usando operações de consulta com tipos de dados espaciais. |
|
|
|
|
|
T8075 |
|
|
CORREÇÃO: Erro de falta de memória quando o espaço de endereço virtual do processo do SQL Server é baixo no SQL Server |
|
T3449 |
|
|
CORREÇÃO: A criação do banco de dados do SQL Server em um sistema com um grande volume de memória leva mais tempo do que o esperado |
Tabela 2. Considerações gerais e práticas recomendadas para melhorar o desempenho da sua instância do SQL Server
Revise o conteúdo do artigo da Base de Dados de Conhecimento/coluna Recursos dos Manuais Online e considere implementar as diretrizes na coluna Ações recomendadas.
Artigo da Base de Dados de Conhecimento/Recurso dos Manuais Online | Ações recomendadas |
---|---|
Configurar a opção de configuração de servidor max degree of parallelism | Use o procedimento armazenado sp_configure para fazer alterações de configuração para Configurar a opção de configuração do servidor de grau máximo de paralelismo para sua instância do SQL Server de acordo com o artigo da Base de Dados de Conhecimento. |
Computar limites de capacidade por edição do SQL Server | O licenciamento Enterprise Edition com CAL (Licença de Acesso para Cliente) Server + Client é limitado a 20 núcleos por instância do SQL Server. Não há limites no modelo de Licenciamento de Servidor Baseado em Núcleo. Considere atualizar sua edição do SQL Server para o SKU apropriado para aproveitar todos os recursos de hardware. |
Desempenho lento no Windows Server ao usar o plano de energia "Balanceado" | Examine o artigo e trabalhe com o administrador do Windows para implementar uma das soluções observadas na seção "Resolução" do artigo. |
Atribua manualmente nós NUMA a grupos K. | |
Otimizar para cargas de trabalho ad hoc PARAMETRIZAÇÃO FORÇADA | As entradas no cache de planos são removidas devido ao crescimento em outros caches ou administradores de memória. Você também pode encontrar a remoção do cache de plano quando o cache atingir seu número máximo de entradas. Além do sinalizador de rastreamento 8032 discutido acima, considere a opção de servidor otimizar para cargas de trabalho ad hoc e também a opção de banco de dados FORCED PARAMETERIZATION . |
Como reduzir a paginação da memória do pool de buffers no SQL Server Considerações sobre configuração e dimensionamento de memória no SQL Server 2012 e versões posteriores | Atribua o direito de usuário Habilitar as Páginas de Bloqueio na Opção de Memória (Windows) à conta de inicialização do serviço SQL. Consulte Como habilitar o recurso "páginas bloqueadas" no SQL Server 2012. Defina a memória máxima do servidor para aproximadamente 90% da memória física total. Certifique-se de que a configuração de opções de configuração de memória do servidor considere a memória apenas dos nós configurados para usar as configurações de máscara de afinidade. |
SQL Server e páginas grandes explicadas... Opções de ajuste para SQL Server ao executar em cargas de trabalho de alto desempenho | Considere habilitar o TF 834 se você tiver um servidor com uma grande quantidade de memória, especialmente com uma carga de trabalho analítica ou de data warehouse. Lembre-se de que o TF 834 não é recomendado se você estiver usando índices columnstore. |
Descrição das opções "contagem de buckets de cache de verificação de acesso" e "cota de cache de verificação de acesso" que estão disponíveis no procedimento armazenado sp_configure | Use as opções de configuração do servidor de cache de verificação de acesso para configurar esses valores de acordo com as recomendações no artigo da Base de Dados de Conhecimento. Os valores recomendados para sistemas high-end são os seguintes: "Contagem de buckets de cache de verificação de acesso": 256 "Cota de cache de verificação de acesso": 1024 |
ALTER WORKLOAD GROUP Dicas de consulta de concessão de memória | Se você tiver muitas consultas que estão esgotando grandes concessões de memória, reduza request_max_memory_grant_percent para o grupo de carga de trabalho padrão na configuração do administrador de recursos do padrão 25% para um valor menor. Novas opções de concessão de memória de consulta estão disponíveis (min_grant_percent e max_grant_percent ) no SQL Server |
Inicialização instantânea de arquivos | Trabalhe com o administrador do Windows para conceder à conta de serviço do SQL Server o direito de usuário "Executar Tarefas de Manutenção de Volume" de acordo com as informações no tópico dos Manuais Online. |
Considerações sobre as configurações "autogrow" e "autoshrink" no SQL Server | Verifique as configurações atuais do seu banco de dados e certifique-se de que elas estejam configuradas de acordo com as recomendações no artigo da Base de Dados de Conhecimento. |
Pontos de verificação de banco de dados (SQL Server) | Considere habilitar pontos de verificação indiretos em bancos de dados de usuário para otimizar o comportamento de E/S no SQL Server 2012 e 2014. |
CORREÇÃO: Sincronização lenta quando os discos têm tamanhos de setor diferentes para arquivos de log de réplica primária e secundária em ambientes SQL Server AG e Logshipping | Se você tiver um Grupo de Disponibilidade em que o log de transações na réplica primária está em um disco com tamanho de setor de 512 bytes e o log de transações da réplica secundária está em uma unidade com tamanho de setor de 4K, você pode ter um problema em que a sincronização é lenta. Nesses casos, habilitar o TF 1800 deve corrigir o problema. Para obter mais informações, consulte Sinalizador de rastreamento 1800. |
|
Se o SQL Server ainda não estiver vinculado à CPU e uma sobrecarga de 1,5% a 2% for insignificante para suas cargas de trabalho, recomendamos que você habilite o TF 7412 como um sinalizador de rastreamento de inicialização. Esse sinalizador permite a criação de perfil leve no SQL Server 2014 SP2 ou posterior, o que lhe dará a capacidade de solucionar problemas de consulta dinâmica em ambientes de produção. |
Tabela 3. Correções de desempenho incluídas em uma atualização cumulativa
Revise a descrição na coluna Sintomas e aplique as atualizações necessárias na coluna Atualização necessária nos ambientes aplicáveis. Você pode revisar o artigo da Base de Dados de Conhecimento para obter mais informações sobre os respectivos problemas. Essas recomendações não exigem que você habilite sinalizadores de rastreamento adicionais como parâmetros de inicialização. Basta aplicar a atualização cumulativa ou o Service Pack mais recente que inclui essas correções para obter o benefício.
Observação
O nome da na coluna Atualização necessária fornece a primeira atualização cumulativa do SQL Server que resolve esse problema. Uma atualização cumulativa contém todos os hotfixes e todas as atualizações que foram incluídas na versão anterior da atualização do SQL Server. Portanto, recomendamos que você instale a atualização cumulativa mais recente para resolver os problemas.
Observações importantes
Se todas as condições da Tabela 1 se aplicarem a você:
- Diretrizes para o SQL Server 2014: aplique pelo menos a Atualização Cumulativa 1 para o SQL Server 2014 para RTM e adicione "-T8048 -T9024 -T1236 -T1117 -T1118" à lista de parâmetros de inicialização do SQL Server.
- Diretrizes para o SQL Server 2012: aplique o SP2 e adicione "-T8048 -T9024 -T1236 -T1117 -T1118" à lista de parâmetros de inicialização do SQL Server.
Para obter informações gerais sobre como usar sinalizadores de rastreamento, consulte o tópico DBCC TRACEON - Sinalizadores de rastreamento (Transact-SQL) nos Manuais Online do SQL Server.
Você pode encontrar mais informações sobre o número de processadores, a configuração do NUMA e assim por diante, em Exibir o log de erros do SQL Server no SQL Server Management Studio (SSMS).
Para localizar a versão do SQL Server, verifique o seguinte:
Como determinar a versão e a edição do SQL Server e seus componentes
Referências
Como obter o service pack mais recente para o SQL Server 2012
Onde encontrar informações sobre os builds de SQL Server mais recentes
Recursos da comunidade do SQL Server sobre atualizações importantes para o SQL Server
Aplicável ao
- SQL Server 2014 Enterprise
- SQL Server 2014 Enterprise Core
- SQL Server 2014 Business Intelligence
- SQL Server 2014 Developer
- SQL Server 2014 Standard
- SQL Server 2014 Web
- SQL Server 2014 Express
- Inteligência de Negócios do SQL Server 2012
- SQL Server 2012 Developer
- SQL Server 2012 Enterprise
- SQL Server 2012 Standard
- SQL Server 2012 Web
- SQL Server 2012 Enterprise Core