Este artigo descreve as melhorias de desempenho e alterações que estão disponíveis para 2017 do Microsoft SQL Server e SQL Server 2016 através de várias opções de configuração e atualizações de produto.
Recomendamos que você considere a aplicação dessas atualizações para melhorar o desempenho de instâncias do SQL Server. O grau de satisfação do usuário depende de vários fatores, incluindo o padrão de carga de trabalho, pontos de contenção, layout de processador (número de grupos de processadores, soquetes, nós NUMA e núcleos em um nó NUMA) e a quantidade de memória disponível no sistema.
A equipe de suporte do Microsoft SQL Server tem usado essas atualizações e alterações de configuração para obter ganhos de desempenho razoável para cargas de trabalho de clientes que usam sistemas de hardware que incluía vários nós NUMA e vários processadores. A equipe de suporte vai continuar a atualizar este artigo com outras atualizações no futuro.
Definição: Sistemas high-end
"Sistema high-end" normalmente tem vários soquetes, oito núcleos ou mais por processadores e um terabyte metade ou mais de memória.
Como aplicar as atualizações recomendadas e melhorar o desempenho do SQL Server
Essas recomendações para melhorar o desempenho do SQL Server 2017 e SQL Server 2016 são agrupadas em cinco tabelas da seguinte maneira:
-
A tabela 1 contém as atualizações recomendadas com mais frequência e sinalizadores de rastreamento de desempenho em sistemas high-end.
-
A tabela 2 contém recomendações e orientação para ajuste de desempenho adicional.
-
A tabela 3 contém informações sobre alterações nas configurações padrão e o comportamento no SQL 2017 e 2016.
-
A tabela 4 contém correções de escalabilidade adicionais foram incluídas em conjunto com uma atualização cumulativa (CU).
-
A tabela 5 contém correções recomendadas e diretrizes de configuração para instâncias de SQL Server implantadas em um ambiente Linux.
Observação: Para contexto adicional, consulte o seguinte artigo do Blog de engenheiros do CSS SQL Server:
Importante
Se você ativou os sinalizadores de rastreamento que são listados naEste artigo da Base de dados de conhecimento para SQL 2014 e 2012, certifique-se de que você analise as informações nesse artigo depois de executar a migração para 2017 do SQL Server ou SQL Server 2016. Muitos dos sinalizadores de rastreamento e opções de configuração listadas nesse artigo se tornou opções padrão em 2017 do SQL Server e SQL Server 2016.
Examine a tabela a seguir e ativar os sinalizadores de rastreamento na coluna do sinalizador de rastreamento após você certificar-se de que sua instância do SQL Server atende aos requisitos da coluna intervalos de compilação e versão aplicável .
Observações
-
"Versão aplicável e compilação" indica a atualização específica em que o sinalizador de rastreamento ou alterar foi introduzido. Se nenhum CU for especificado, todos os CUs no SP estão incluídos.
-
"Não aplicável versão e compilação"indica a atualização específica em que o sinalizador de rastreamento ou alterar tornou-se o comportamento padrão. Portanto, a apenas aplicar essa atualização será suficiente para receber os benefícios.
Importante: Quando você habilita correções com sinalizadores de rastreamento em ambientes sempre, 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 considerar |
Sinalizador de rastreamento |
Intervalos de versão e compilação aplicáveis |
Intervalos de versão e compilação não aplicáveis |
Link de artigo ou blog da Base de conhecimento para obter mais detalhes |
Uma grande contenção de spinlock SOS_CACHESTORE ou seus planos estão sendo removidos com frequência em cargas de trabalho de consulta ad hoc. |
T174 |
SQL Server 2016 RTM para SP/CU atual SQL Server 2017 RTM para SP/CU atual |
None |
3026083Corrigir: contenção de spinlock SOS_CACHESTORE no cache de plano ad hoc do SQL Server causa alta utilização da CPU no SQL Server |
As entradas no cache do plano forem excluídas devido a crescimento em outros caches ou assistentes de memória Alto consumo de CPU devido a frequentes recompilações de consultas |
T8032 |
SQL Server 2016 RTM para Atual SP/CU SQL Server 2017 RTM para Atual SP/CU |
None |
Documentação do TF 8032 Consulte a seção Gerenciamento de tamanho do Cache de Planejar Cache interna |
tempdb é usado e tem muitas modificações nos dados em tempdb Você encontrar mensagens de agendador não respondendo ao usar verificação indireta para banco de dados tempdb |
T3468 |
SQL Server 2016 SP1 CU5 para a controladora de armazenamento/CU atual SQL Server 2017 CU1 para a controladora de armazenamento/CU atual |
None |
Ponto de verificação e tempdb – o bom, o mau e o Agendador não produzindo indireta Corrigir 4040276 : pontos de verificação indiretos no banco de dados tempdb causam "não respondendo no Agendador" Erro no SQL Server 2017 e 2016 |
Transações de curtas frequentes acontecem em tempdb Observe o maior utilização da CPU para essas transações Conformidade com critérios comuns não está habilitada |
T3427 |
SQL Server 2016 SP1 CU2 para SQL Server 2016 SP2 CU2 |
SQL Server 2017 RTM |
3216543 as cargas de trabalho que usam muitas transações frequentes, curtas no SQL Server 2017 e 2016 podem consumir mais CPU que no SQL Server 2014 |
Solucionar problemas de desempenho de consulta específica Correções do Optimizer estão desabilitadas por padrão |
T4199 |
SQL Server 2016 RTM para SP/CU atual SQL Server 2017 RTM para SP/CU atual |
None |
974006SQL Server query optimizer hotfix rastreamento sinalizador 4199 modelo de serviço Observação:Em vez do rastreamento de nível de servidor sinalizar 4199, considere usar a opção de escopo do banco de dadosQUERY_OPTIMIZER_HOTFIXESou a dica de consultaENABLE_QUERY_OPTIMIZER_HOTFIXES. |
Trabalhos de estatísticas levam muito tempo para concluir Não é possível executar estatísticas de vários trabalhos de atualização em paralelo |
T7471 |
CU1 de RTM do SQL Server 2016 para SP/CU atual SQL Server 2017 RTM para SP/CU atual |
None |
3156157 executados simultaneamente várias estatísticas de atualização para estatísticas diferentes em uma única tabela está disponível Aumentar o desempenho de Update Statistics com SQL 2014 & SQL 2016 |
Examine o conteúdo da coluna de artigo da Base de conhecimento ou recursos on-line de livros e considere implementar as orientações na coluna ações recomendadas .
Artigo da Base de conhecimento ou recurso livros on-line |
Ações recomendadas |
2806535 Recomendações e diretrizes para a opção de configuração de "grau máximo de paralelismo" do SQL Server |
Use o procedimento sp_configure armazenados para fazer alterações na configuração de "grau máximo de paralelismo" da instância do SQL Server pelo artigo da Base de Conhecimento. |
Enterprise Edition com servidor e licenciamento da licença de acesso para cliente (CAL) é limitado a 20 núcleos por instância do SQL Server. Não há nenhum limite sob o modelo de licenciamento de servidor baseado no núcleo. Considere a possibilidade de atualizar sua edição do SQL Server para a SKU apropriada para usar todos os recursos de hardware. |
|
2207548 o desempenho lento no Windows Server 2008 R2 ao usar o plano de energia "Equilibrado" |
Leia o artigo e trabalhar em conjunto com o administrador do Windows para implementar uma das soluções que estão listadas na seção "Resolução" do artigo. |
2506384 como configurar manualmente a atribuição do grupo de K em computadores com multiprocessador |
Atribua manualmente nós NUMA K-grupos. Para obter mais informações, consulte o seguinte artigo: |
As entradas no cache do plano forem excluídas devido a crescimento em outros caches ou assistentes de memória. Remoção de cache do plano também podem ocorrer quando o cache atinge o número máximo de entradas. Além de sinalizador de rastreamento 8032 discutidas acima, considere a opção de servidor Otimizar para cargas de trabalho ad hoc e também a opção de banco de dados de PARAMETRIZAÇÃO FORÇADA . |
|
918483Como reduzir a paginação da memória de pool do buffer na versão de 64 bits do SQL Server Configuração de memória 2663912 e dimensionamento considerações no SQL Server 2014 e 2012 |
Atribua ao usuário "Bloquear páginas na memória" da direita para o conta de inicialização de serviço do SQL. Veja como ativar o recurso "páginas bloqueadas" no SQL Server 2012. Defina a memória máxima do servidor como aproximadamente 90 por cento do total de memória física. Certifique-se de que a configuração de "máximo de memória do servidor" contas de memória de nós que são configurados para usar configurações de máscara de afinidade. |
Considere a ativação TF 834 se você tiver um servidor que tenha muita memória, principalmente para uma analítica ou data warehouse carga de trabalho. Tenha em mente que TF 834 não é recomendável se você estiver usando columnstore índices. |
|
Problemas de desempenho de consulta associados a um cache de segurança tamanho grande |
Se o cache de segurança cresce em um tamanho grande e você encontrar problemas de desempenho e contenção de spinlock, considere ativar o sinalizador de rastreamento T4610 e T4618 para reduzir o tamanho máximo de TokenAndPermuserStore. |
Se você tiver muitas consultas são exaustivas grandes concessões de memória, reduza a request_max_memory_grant_percent para o grupo de carga de trabalho padrão na configuração do Governador recurso dos padrão 25% para um valor menor. Opções para concessão de memória de consulta novos estão disponíveis (min_grant_percent e max_grant_percent) no SQL Server. |
|
SQL 2016 – ele apenas é executado mais rápido: Configuração automática TEMPDB |
Adicionar vários arquivos de dados de tamanho igual para o banco de dados tempdb, se este for um servidor atualizado Para novas instalações, o programa de instalação faz isso automaticamente. |
Arquivos de TEMPDB – e atualizações e sinalizadores de rastreamento |
Use as otimizações de tempdb e melhorar a escalabilidade evitando ou reduzindo DDL em objetos temporários |
Trabalhar em conjunto com o administrador do Windows para conceder a conta de serviço do SQL Server os direitos do usuário "Executar tarefas de manutenção de Volume" por informações no tópico dos Manuais Online. |
|
Considerações 315512 para as configurações de "crescimento automático" e "autoshrink" no SQL Server |
Verificar as configurações atuais do seu banco de dados e certifique-se de que eles são configurados pelas recomendações no artigo da Base de Conhecimento. |
Considere a ativação de pontos de verificação indiretos em bancos de dados de usuário para otimizar o comportamento de e/s no SQL Server 2014 e 2012. |
|
Do SQL Server: RAM grande e o ponto de verificação do banco de dados |
Considere a ativação de pontos de verificação indiretos em bancos de dados de usuário para otimizar o comportamento de e/s no SQL Server 2014 e 2012. Rvisualizar os ajustes necessários para tempdb na referência do ponto de verificação indireta e tempdb – o bom, o mau e o Agendador não produzindo |
3009974Correção: reduzir a sincronização quando discos possuem tamanhos de setor diferente para os arquivos de log de réplica primários e secundários em ambientes SQL Server AG e Logshipping |
Se você tiver um grupo de disponibilidade no qual o log de transações na réplica primária está em um disco que tenha um tamanho de setor de 512 bytes e o log de transações da cópia secundária está em uma unidade que tenha um tamanho de setor de 4K, você pode enfrentar sincronização lenta. Essa situação, permitindo que 1800 TF deve corrigir o problema. |
3170113atualização para expor as estatísticas de execução de consulta por operador no showplan XML e eventos estendidos do SQL Server de 2014 SP2 |
Se o SQL Server não estiver vinculado à CPU e uma sobrecarga de 1,5 a 2% é insignificante para suas cargas de trabalho, é recomendável que você ative TF 7412 como um sinalizador de rastreamento de inicialização. Esse sinalizador habilita leve de criação de perfil no SQL Server de 2014 SP2 ou posterior. Isso permite que você mora consulta de solução de problemas em ambientes de produção. |
Identificar plano escolha regressões usando armazenamento de consulta |
Usar o recurso de armazenamento de consulta para identificar consultas que existência ou são desempenho ruim Se ocorrerem problemas de desempenho de consulta devido a estimativa de cardinalidade, selecione a versão apropriada do CE: opção de escopo do banco de dados LEGACY_CARDINALITY_ESTIMATION, a dica de consulta LEGACY_CARDINALITY_ESTIMATION, nível de compatibilidade do banco de dados ou sinalizador de rastreamento 9481 |
Avalie as consultas que usam junções e filtros para compreender o efeito de confinamento simple e base. Use o sinalizador de rastreamento 9476 de confinamento simple em vez de confinamento base quando você usar o estimador de cardinalidade padrão. |
|
Use o nível de compatibilidade do banco de dados de 130 ou posterior para se beneficiar com os seguintes aprimoramentos:
Use o nível de compatibilidade do banco de dados 140 ou posterior para se beneficiar com os seguintes aprimoramentos:
|
|
|
|
SQL Server 2016/2017: Cópia secundária do grupo de disponibilidade refazer o modelo e o desempenho |
Se você tiver muitos revisão em espera (PARALLEL_REDO_TRAN_TURN, DPT_ENTRY_LOCK ou DIRTY_PAGE_TABLE_LOCK), este blog para fazer ações corretivas (Aplicar correção aplicável, avaliar o uso apropriado de refazer modelo) |
2634571 melhorias para o comando DBCC CHECKDB podem aumentar o desempenho quando você usar a opção PHYSICAL_ONLY Detalhes do T2566 no DBCC TRACEON - sinalizadores de rastreamento |
Se você executar comandos DBCC verificar em bancos de dados muito grandes (vários tamanhos de TB), considere o uso de sinalizadores de rastreamento T2562, T2549 e T2566. Várias verificações estão agora localizadas na opção EXTENDED_LOGICAL_CHECK no SQL Server 2016. |
Proteger o SQL Server contra ataques de vulnerabilidades de canal paralelo Spectre e Meltdown |
Avalie cuidadosamente o desempenho do Kernel Virtual endereço sombreamento (KVAS), indireção de tabela na página do Kernel (KPTI) e indiretos predição de ramificação atenuação (IBP) em várias cargas de trabalho do SQL Server em seu ambiente. |
2017 do SQL Server e SQL Server 2016 contém vários aprimoramentos nas áreas de desempenho e escalabilidade. Várias alterações de configuração e sinalizadores de rastreamento que são necessários em 2014 do SQL Server e SQL Server 2012 tornou-se o comportamento padrão no SQL Server 2017 e 2016.
Esta tabela fornece uma visão geral de todas as alterações que são implementadas em 2017 do SQL Server e SQL Server 2016.
Área |
Resumo da alteração |
Mais informações e referências |
Mecanismo SQL |
Frequentemente usado sinalizadores de rastreamento que são retirados ou não são mais necessários no SQL Server 2016 e as versões posteriores do SQL Server: 8048, 8079, 9024, 1236, 1118 1117, 6498, 8075, 3449, 6532, 6533 e 6534. |
|
Mecanismo de banco de dados |
|
O que há de novo no mecanismo de banco de dados - SQL Server 2017 |
Mecanismo de banco de dados |
|
Alterações recentes recursos de mecanismo de banco de dados do SQL Server 2016 |
Mecanismo de banco de dados |
|
Últimas alterações aos recursos de mecanismo de banco de dados do SQL Server 2017 |
Processamento de consulta conversões de tipo de dados |
SQL Server 2016 (13.x) inclui melhorias em algumas operações (principalmente incomuns) e algumas conversões de tipos de dados. |
Para obter mais informações, consulte SQL Server 2016 melhorias no tratamento de alguns tipos de dados e operações incomuns. |
Grupo de disponibilidade |
Para o banco de dados secundário, inicialização propagação automática usa o pontos de extremidade de espelhamento de banco de dados para transmitir o conteúdo do banco de dados para o secundário e aplicá-las. |
SQLSweet16!, episódio 2: a propagação automática de grupos de disponibilidade |
Grupo de disponibilidade |
SQL Server 2016 usa menos alternâncias de contexto quando ele transporta blocos de log do principal para o secundário. |
|
Grupo de disponibilidade |
SQL Server 2016 usa algoritmos de compressão aperfeiçoada e compactação paralela dos blocos de dados de log. |
|
Grupo de disponibilidade |
SQL Server 2016 tira proveito do hardware é baseado em recursos de criptografia de AES-NI para melhorar o desempenho e sempre na escalabilidade de envio de log por um fator significativo. |
SQL 2016 – ele apenas é executado mais rápido – criptografia AES-NI AlwaysOn |
Desempenho |
SQL Server 2016 detecta os recursos da CPU para AVX ou o SSE e usa os recursos de vetor com base em hardware para melhorar a escalabilidade e o desempenho quando a compactação, criação de dicionários e processando dados columnstore. |
|
Desempenho |
SQL Server 2016 tira proveito das instruções de vetor da CPU para melhorar o desempenho de inserção em massa. |
|
Desempenho |
SQL Server 2016 permite uma inserção... Selecione a instrução para operar usando paralelismo reduzindo significativamente os tempo de carregamento de dados. |
|
Desempenho |
SQL Server 2016 permite truncar operação em partições individuais de uma tabela para o arquivamento de partições antigas. |
|
Desempenho |
SQL Server 2016 ajusta dinamicamente o tamanho do pool de operador de banco de dados de memória otimizada conforme necessário. |
|
Tempdb |
Alocações é bancos de dados do usuário e tempdb usa extensões uniformes estão completo. Crescimento de arquivo em tempdb acontece para todos os arquivos ao mesmo tempo. |
|
Tempdb |
Configuração do mecanismo de banco de dados calcula automaticamente o número de arquivos de dados tempdb. |
SQL 2016 – ele apenas é executado mais rápido: Configuração automática TEMPDB |
Armazenamento |
Mecanismo de banco de dados usa 0xC0 carimbo em vez de 0x00 para inicialização de arquivo de log de transação. |
SQL 2016 – ele apenas é executado mais rápido: LDF com carimbo |
Armazenamento |
Para memória de grande servidores e cargas pesadas escrever ambientes, checkpoint indireta tem um desempenho melhor. |
SQL 2016 – ele apenas é executado mais rápido: Padrão de ponto de verificação indireto |
Armazenamento |
Altas taxas de transações podem se beneficiar de vários logwriters liberar cache de log para o log de transações. |
SQL 2016 – ele apenas é executado mais rápido: Vários trabalhadores de gravador de Log |
Backup e restauração |
Os backups podem ser compactados para banco de dados criptografado usando TDE se você especificar MAXTRANSFERSIZE maior que 65536. |
SQLSweet16!, episódio 1: Fazer Backup de compactação para bancos de dados habilitado para TDE |
SO DO SQL |
Objetos de memória para reduzir a contenção de objeto memória da partição dinamicamente. |
SQL 2016 – ele apenas é executado mais rápido: Memória dinâmica objeto particionamento (CMemThread) |
SO DO SQL |
SQL Server 2016 monitora os padrões de uso do quantum de trabalhadores, permitindo que todos os trabalhadores obter tratamento justo e melhorar a escalabilidade. |
SQL 2016 – ele apenas é executado mais rápido: Atualizado algoritmos de programação |
SO DO SQL |
SQL Server 2016 interroga o layout de hardware e configura automaticamente NUMA suave em sistemas reporting 8 ou mais CPUs por nó NUMA. O particionamento aciona vários ajustes em todo o mecanismo de banco de dados para maior escalabilidade e desempenho. |
SQL 2016 – ele apenas é executado mais rápido: Automática NUMA suave |
SELEÇÃO DE DBCC |
Especifica MAXDOP para gerenciar os recursos consumidos pelo comando DBCC verificar. |
|
SELEÇÃO DE DBCC |
DBCC verificar usa uma página aprimorada varredura algoritmo que tem menos disputa e recursos avançados de leitura antecipada. |
SQL 2016 – ele apenas é executado mais rápido: DBCC dimensiona 7x melhor |
SELEÇÃO DE DBCC |
Comandos DBCC verificar levar muito tempo quando o SQL Server avalia os tipos de dados especiais e índices. Essas verificações são movidos na opção EXTENDED_LOGICAL_CHECKS. |
SQL 2016 – ele apenas é executado mais rápido: DBCC estendido verificações |
Página de código |
Utilitários BULK INSERT ou bcp aprimorado para carregar dados UTF-8 em uma tabela no SQL Server. |
SQLSweet16!, episódio 10: "Pode comer vidro...", mas pode, carregá-lo em um banco de dados? |
Espaciais |
SQL Server 2016 remove as atividades PInvoke e PUnInvoke durante a execução do T-SQL para muitos dos métodos espaciais. |
SQL 2016 – ele apenas é executado mais rápido: Implementation(s) espaciais nativo |
Espaciais |
SQL Server 2016 melhora a escalabilidade do TVP que usa dados espaciais usando validações espaciais nativas. |
SQL 2016 – ele apenas é executado mais rápido: TVPs com colunas espaciais |
Espaciais |
Nativo e aprimoramentos espaciais TVP ativar do SQL Server otimizar a criação de índices e o mosaico de dados espaciais. |
SQL 2016 – ele apenas é executado mais rápido: Índice espacial cria mais rápido |
MSDTC |
SQL Server 2016 dinamicamente inicia MSDTC conforme necessário, permitindo que os recursos para ser usado para outras atividades até que o necessário. |
|
XEvent |
Várias alterações são feitas para a lógica de provedor XEvent Linq para reduzir a alternância de contexto, as alocações de memória e outra renderização mais rápida de aspectsfor de eventos. |
SQL 2016 – ele apenas é executado mais rápido: Leitor de Linq XEvent |
Revise a descrição da coluna Sintomas e aplicar as atualizações necessárias (preferencialmente a atualização mais recente que contém a correcção específica) na coluna atualização necessária em ambientes aplicáveis. Você pode revisar o artigo do Knowledge Base para obter mais informações sobre os problemas respectivos. Essas recomendações não exigem que você habilite sinalizadores de rastreamento adicionais como parâmetros de inicialização, a menos que ele é explicitamente chamado no artigo ou nesta tabela. Aplicar apenas a CU ou Service Pack que inclui essas correções mais recentes é suficiente para obter o benefício.
Observação: O nome da CU na coluna necessária a atualização fornece a primeira CU 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 com o SQL Server anterior lançamento da atualização. Conforme observado nas atualizações para o SQL Server modelo de serviços incrementais, recomendamos que você instale a atualização cumulativa mais recente em uma cadência proativa em andamento para resolver ou evitar os problemas que são descritos. Observe também que iniciando no SQL Server 2017, o Modelo de serviços modernos para SQL Server foi introduzido para que os service packs não são mais disponibilizados.
Versão aplicável |
Área ou componente |
Descrição do problema abordado |
Atualização recomendada |
SQL Server 2016 SQL Server 2017 |
Backup e restauração |
Backup de log de banco de dados habilitado para TDE falhará e retornará o erro 33111 intermitentemente durante a procura de uma cópia antiga do certificado que foi usado para criptografar a DEK no passado se MAXTRANSFERSIZE não-padrão é usado |
CORREÇÃO: Erros 33111 e 3013 ao fazer backup de banco de dados criptografado TDE no SQL Server
|
SQL Server 2016 SQL Server 2017 |
Backup e restauração |
Instrução RESTORE HEADERONLY para um backup compactado de TDE lenta para ser concluída no SQL Server |
|
SQL Server 2016
|
Backup e restauração |
Falha ao compactar o arquivo de backup quando a opção INIT e compactação é usada em um banco de dados habilitado para TDE |
|
SQL Server 2016
|
Backup e restauração |
Falha de afirmação ao fazer backup de grande TDE criptografados banco de dados no SQL Server |
|
SQL Server 2016
|
Backup e restauração |
Restauração falha quando você faz backup usando compactação e soma de verificação em um banco de dados habilitado para TDE |
|
SQL Server 2016
|
Backup e restauração |
Erro 9004 quando tentar restaurar um backup compactado em vários arquivos para um grande criptografados TDE banco de dados no SQL Server |
|
SQL Server 2016 SQL Server 2017 |
Backup e restauração |
Restaura o desempenho lento quando você restaurar um backup usando a compactação em um setor de 4K no SQL Server |
Desempenho lento sobre como restaurar o backup compactado no disco com tamanho de setor de 4K
|
SQL Server 2016 SQL Server 2017 |
Backup e restauração [VDI] |
Restauração de um backup compactado TDE não tem êxito ao usar o cliente VDI |
CORREÇÃO: Restauração de backup compactado TDE via cliente VDI é malsucedida
|
SQL Server 2016 SQL Server 2017 |
Backup e restauração [VDI] |
Restaurando um backup compactado, banco de dados habilitado para TDE por meio da interface VDI falha e retorna OS Erro 38
|
|
SQL Server 2016 SQL Server 2017 |
Backup e restauração [VSS] |
Backup do banco de dados de disponibilidade por meio de um aplicativo baseado em VSS pode falhar no SQL Server |
|
SQL Server 2016 SQL Server 2017 |
Backup e restauração |
Habilitado para TDE de backup e restauração são lentos se a chave de criptografia é armazenada em um provedor EKM no SQL Server |
Habilitado para TDE backup e restauração lenta se a chave de criptografia é armazenada em EKM
|
SQL Server 2016 SQL Server 2017 |
Sempre em AG ColumnStore |
Consultas que recuperam dados por meio de busca de índice não-agrupado demoram mais |
|
SQL Server 2016 SQL Server 2017 |
Sempre em AG
|
Redo paralelo em uma cópia secundária de um grupo de disponibilidade que contém tabelas de heap gera um despejo de assert em tempo de execução ou o servidor que está executando o SQL Server falha e retorna um erro de violação de acesso |
|
SQL Server 2016 |
Sempre em AG |
Declaração ocorre quando você usa redo paralelo em uma réplica de um grupo de disponibilidade do SQL Server AlwaysOn secundária |
|
SQL Server 2016 SQL Server 2017 |
Sempre em AG
|
O desempenho é lento para um sempre em AG ao processar uma consulta de leitura |
CORREÇÃO: Sempre em AG lento ao processar ler consulta no SQL Server
|
SQL Server 2017 |
Sempre em AG |
Aperfeiçoamento para reduzir a duração de failover para um grupo de disponibilidade do SQL Server no Linux |
|
SQL Server 2017 |
Sempre em AG |
Aprimoramentos para sempre em grupos de disponibilidade em um cluster de Pacemaker no SQL Server |
Aprimoramentos para sempre em grupos de disponibilidade em um cluster de Pacemaker no SQL Server
|
SQL Server 2016
|
Memória |
Redo paralelo faz uso alto da memória |
|
SQL Server 2016 SQL Server 2017 |
Memória |
sp_execute_external_script e sys.dm_exec_cached_plans DMV causam vazamentos de memória |
|
SQL Server 2016 SQL Server 2017 |
Memória |
Erro de falta de memória quando o espaço de endereço virtual do processo do SQL Server é muito baixo |
|
SQL Server 2016 |
Memória |
vazamento de memória ocorre quando você usar o armazenamento do Azure no SQL Server |
Um vazamento de memória ocorre quando você usar o armazenamento do Azure no SQL Server 2014 ou 2016
|
SQL Server 2016 SQL Server 2017 |
OLTP in-memory |
Uso de pontos de verificação de disco grandes ocorre para um grupo de arquivos em memória otimizada |
|
SQL Server 2016
|
OLTP in-memory |
Arquivos de verificação crescem excessivamente ao inserir dados em tabelas de memória otimizada
|
|
SQL Server 2016 SQL Server 2017 |
OLTP in-memory |
Recuperação de banco de dados é demorada quando ela contém tabelas de memória otimizada |
|
SQL Server 2016 SQL Server 2017 |
tempdb |
PFS página aperfeiçoamento de algoritmo round robin |
PFS página melhoria de algoritmo round robin no SQL Server 2016
|
SQL Server 2016 SQL Server 2017 |
tempdb |
Problemas de desempenho ocorrem na forma de espera PAGELATCH_EX e PAGELATCH_SH em TempDB (sys.sysobjvalues e sys.sysseobjvalues) |
Problemas de desempenho ocorrem no formulário de espera PAGELATCH_EX e PAGELATCH_SH
|
SQL Server 2016 SQL Server 2017 |
tempdb |
Contenção de tempdb pesado Alterar tabela temporária que possui restrições de chamada requer uma queda síncrona de tabela temporária |
Contenção de tempdb pesada ocorre no SQL Server 2016 ou 2017
|
SQL Server 2017 |
tempdb |
Disputas de PAGELATCH_EX ao remover objetos temporários (sys.sysobjvalues) |
CORREÇÃO: Disputas de PAGELATCH_EX ao remover objetos temporários no SQL Server
|
SQL Server 2016 |
tempdb |
Disputas de PAGELATCH_EX significativamente maiores em sys.sysobjvalues |
CORREÇÃO: Significativamente maior contenções PAGELATCH_EX em sys.sysobjvalues no SQL Server 2016
|
SQL Server 2016 SQL Server 2017 |
tempdb |
Pontos de verificação indiretos no banco de dados tempdb causam erro de "não respondendo no Agendador" |
|
SQL Server 2016 SQL Server 2017 |
tempdb |
Cargas de trabalho que usam muitas transações frequentes, curtas podem consumir mais CPU |
|
SQL Server 2016 SQL Server 2017 |
Log de transações |
Erro 9002 quando não há nenhum espaço em disco suficiente para o crescimento de log crítica |
Erro 9002 ao executar operações de crescimento de arquivo não no SQL Server de 2014, 2016 e 2017
|
SQL Server 2016 |
Cache de segurança |
Alto uso de CPU causa problemas de desempenho no SQL Server 2016 Spinlock alta contenção de SECURITY_CACHE e CMED_HASH_SET |
CORREÇÃO: Uso de alta utilização da CPU causa problemas de desempenho no SQL Server 2016
|
SQL Server 2017 |
Armazenamento de consulta |
Violação de acesso ocorre quando o armazenamento de consulta coleta estatísticas de tempo de execução |
|
SQL Server 2016 |
Armazenamento de consulta |
Limpeza de armazenamento de consulta automática falha em edições diferentes Enterprise e Developer edition |
|
SQL Server 2016 |
Armazenamento de consulta |
Desempenho lento do SQL Server quando o armazenamento de consulta está habilitado |
Desempenho lento ao armazenamento de consulta está habilitado no SQL Server 2016
|
Esta tabela é uma compilação de todos os principais aprimoramentos, as recomendações e as alterações de código foram lançadas nas atualizações cumulativas após o lançamento do SQL Server 2017. Revise a descrição da coluna Sintomas e aplicar as atualizações necessárias (preferencialmente a atualização mais recente que contém a correcção específica) na coluna atualização necessária em ambientes aplicáveis. Você pode revisar o artigo do Knowledge Base relacionado para obter mais informações sobre os problemas respectivos. Essas recomendações não exigem que você habilite sinalizadores de rastreamento adicionais como parâmetros de inicialização, a menos que ele é explicitamente chamado no artigo ou nesta tabela. Apenas aplicar a atualização cumulativa mais recente ou o service pack que inclui essas correções é suficiente para obter o benefício. Se você estiver usando o grupo de disponibilidade do AlwaysOn do SQL Server no Linux, atualize 2017 do SQL Server para 8 de atualização cumulativa ou superior já que várias melhorias foram entregues nesta atualização.
Observação: O nome da CU na coluna necessária a atualização 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 com o SQL Server anterior lançamento da atualização. Conforme observado nas atualizações para o SQL Server modelo de serviços incrementais, agora recomendamos que você instale a atualização cumulativa mais recente em uma cadência proativa em andamento para resolver ou evitar os problemas que são descritos. Observe também que a partir do SQL Server 2017, o Modelo de serviços modernos para SQL Server foi introduzido para que os service packs não estarão disponíveis.
Resumo das alterações ou melhoria |
Mais informações e referências |
SQL e sistema operacional: revisar as várias práticas recomendadas para o sistema operacional e o SQL Server durante a implantação do SQL Server no Linux |
Práticas recomendadas de desempenho e as diretrizes de configuração para o SQL Server no Linux |
Agente do SQL Aperfeiçoamento: Trabalhos do SQL Server Agent podem iniciar sem esperar que todos os bancos de dados recuperar |
|
Armazenamento Aperfeiçoamento: Ativar mecanismo "forçados a liberação" no SQL Server 2017 |
Ativar o mecanismo de liberação forçado no SQL Server 2017 no Linux
|
Armazenamento Aperfeiçoamento: Mover o banco de dados mestre e o arquivo de log de erro para outro local |
Mover o banco de dados mestre e o arquivo de log de erro para outro local
|
AG Melhoria: Melhorias para sempre em grupos de disponibilidade em um cluster de Pacemaker no SQL Server |
Aprimoramentos para sempre em grupos de disponibilidade em um cluster de Pacemaker no SQL Server
|
Memória Aperfeiçoamento: Limite de memória mínimo definido para 2GB para instalar ou iniciar o SQL Server |
CORREÇÃO: Limite de memória de mínimo definido para 2GB para instalar ou iniciar o SQL Server 2017
|
Memória CORREÇÃO: Fase de crescimento de memória é muito longo após a habilitação do TF 834 |
Fase de crescimento de memória é muito longo após TF 834 está habilitada no SQL 2017
|
Agendamento CORREÇÃO: Desempenho e portabilidade diferem entre Windows e Linux mapeamentos de Agendador no SQL Server 2017 |
|
Autenticação do AD CORREÇÃO: Não é possível criar um logon com base em um usuário que pertence ao domínio pai |
|
Autenticação do AD Atualização: Melhora o desempenho do servidor SQL, restringindo que KDC pode ser contatado em redes grandes geograficamente |
|
Autenticação do AD CORREÇÃO: O SQL Server falha quando você usa o Active Directory fornecedores |
CORREÇÃO: O SQL Server 2017 falha quando você usa o Active Directory fornecedores
|
TSQL CORREÇÃO: Função NEWSEQUENTIALID gera um GUID duplicado após a reinicialização do SQL Server |
NEWSEQUENTIALID gera GUID duplicado após a reinicialização do SQL Server
|
Conexões CORREÇÃO: O consumo de memória inesperado ao conexões usadas de protocolo TCP |
|
Conexões CORREÇÃO: Erro de resolução de nome ocorre quando IPv6 está desabilitada na inicialização |
CORREÇÃO: Erro de resolução de nome ocorre quando IPv6 está desabilitado no SQL Server 2017 no Linux
|
Conexões CORREÇÃO: SQL Server não ouvir o endereço IP não-padrão especificado pelo script mssql conf |
|
O programa de instalação CORREÇÃO: script falhas na atualização ao aplicar CU |
Erros ao atualizar o SQL Server 2017 CU4 ou posterior e não ativar agente SQL no Linux
|
O Database Mail CORREÇÃO: O Database Mail não pode se conectar ao SQL Server quando a porta TCP não padrão é usada |
O Database Mail não pode se conectar do SQL Server quando o TCP não-padrão é usado
|
Contêiner CORREÇÃO: Não é possível parar o recipiente Docker de Linux do SQL Server usando o comando "stop docker" |
CORREÇÃO: Não é possível parar o recipiente de SQL Server Linux Docker via "stop docker"
|
Contêiner CORREÇÃO: Erro de falta de memória ao executar o SQL Server em um recipiente de Linux Docker |
CORREÇÃO: "memória insuficiente" quando executando SQL Server 2017 no recipiente Linux Docker
|
AG: se você estiver usando Pacemaker pacote 1.1.18-11.el7 ou superior, ajustar a propriedade Iniciar falha-for-fatal |
Atualização cumulativa 7 para SQL Server 2017
|
AG CORREÇÃO: Pacemaker poderá finalizar os processos do agente de recurso quando o tempo limite da operação |
Processos pacemaker kill recurso agente quando o tempo limite da operação
|
AG CORREÇÃO: Duas instâncias do SQL Server são a réplica principal de um grupo de disponibilidade |
|
AG CORREÇÃO: O failover desnecessário quando você usar o grupo de disponibilidade do AlwaysOn |
Failover desnecessário ao usar o grupo de disponibilidade do AlwaysOn no SQL Server 2017 no Linux
|
AG CORREÇÃO: Pacemaker Rebaixa a réplica primária existente de um AG AlwaysOn e nunca promove um novo |
Pacemaker Rebaixa a réplica primária existente de um AG AlwaysOn no SQL Server
|
AG CORREÇÃO: Pacemaker promove uma réplica não sincronizada principal quando você usar o AlwaysOn AG |
Pacemaker promove sincronia réplica principal ao usar o AlwaysOn AG
|
AG CORREÇÃO: Promoção de Pacemaker de réplica local primário falha ao usar o AlwaysOn AG |
CORREÇÃO: Pacemaker promover réplica local primário falhar com AG AlwaysOn no SQL Server 2017
|
AG CORREÇÃO: Inicialização do banco de dados que pertence a um grupo de disponibilidade do tempo limite |
|
AG CORREÇÃO: Desnecessários failovers ocorrer quando uma instância de Cluster de Failover do SQL Server ou sempre AG é gerenciado pelo Pacemaker |
|