KB3191487 - Foi melhorada a estabilidade do SQL Server e a execução simultânea de consultas para algumas consultas columnstore no SQL Server 2014 e 2016

Aplica-se A
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Sintomas

Tenha em conta o seguinte cenário:

  • Você tem uma tabela com índices columnstore agrupados nela e a tabela tem muitas colunas (em centenas).
  • Os dados (tipo de dados) destas colunas são dados altamente compressíveis, como varchar.
  • Execute uma instrução SELECT nesta tabela para selecionar um subconjunto grande ou todas as colunas desta tabela.
  • A sua instrução select tem uma cláusula WHERE que limita o resultado da mesma a poucas linhas (a consulta é altamente seletiva).

Nesse cenário, você pode encontrar qualquer um ou todos os seguintes sintomas:

  • A carga de trabalho simultânea (outras consultas que são executadas ao mesmo tempo no servidor como esta consulta) poderá deparar-se com uma diminuição no desempenho e perda de débito.
  • Poderá observar uma utilização elevada intermitente da CPU.
  • Se consultar sys.dm_os_ring_buffers e visualizar entradas do tipo SchedulerMonitor, encontrará mensagens intermitentes de "agendador não produtivo" registadas durante a execução desta consulta.
  • Pode receber um erro de agendador não produtivo no registo de erros e pode ser gerado um ficheiro de captura de memória de sintomas.

        
      

Resolução

O problema foi corrigido na seguinte atualização cumulativa do SQL Server:

Recomendação: Instale a atualização cumulativa mais recente para o SQL Server

Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Recomendamos que transfira e instale as atualizações cumulativas mais recentes para SQL Server:

      

Mais Informações

Detalhes da correçãoOs trabalhadores que processam os segmentos de coluna (descompactando-os e verificando-os em busca de linhas qualificadas) usados para "render" o uso da CPU para outros trabalhadores/execuções de consulta simultâneas quando um determinado número limite de linhas era produzido. Quando a cláusula WHERE era altamente seletiva para produzir poucas linhas, os trabalhadores que processavam essa consulta processavam um grande número de segmentos sem compactação (porque poucas linhas se qualificam) antes de cederem a CPU de forma cooperativa para outros trabalhadores processarem sua carga de trabalho. Isso levou ao uso irregular da CPU e à degradação da taxa de transferência para cargas de trabalho simultâneas. A correção otimiza e melhora o algoritmo de partilha da CPU para essas consultas columnstore.

Referências

Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.