Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

BUG n º: 187868 (Manutenção do conteúdo)VSTS: 1340145

A Microsoft distribui correções do Microsoft SQL Server 2012 em um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com o anterior de SQL Server 2012 lançamento da atualização.

Sintomas

Considere o seguinte cenário:

  • Criar um procedimento armazenado que utiliza um parâmetro com valor de tabela (TVP) no Microsoft SQL Server 2012.

  • Use o SQL Profiler ou SQL Server Extended Events para capturar o RPC: iniciando e RPC: concluída eventos.

  • Executar uma consulta que usa a TVP.

  • Tempo limite da consulta.

Nesse cenário, ocorrerá um erro de agendador não produzindo e consultas que estão sendo executados no Agendador mesmo lento. Além disso, um arquivo de despejo simplificado é gerado na pasta de log do SQL Server.
Quando esse problema ocorre, você recebe uma mensagem de erro semelhante à seguinte:

System.Data.SqlClient.SqlException (0x80131904): Tempo limite esgotado. O tempo limite esgotou antes da conclusão da operação ou o servidor não está respondendo.
no System.Data.SqlClient.SqlInternalConnection.OnError (exceção SqlException, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
no System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj, erro UInt32)
no System.Data.SqlClient.TdsParserStateObject.ReadSni (asyncResult DbAsyncResult, TdsParserStateObject stateObj)
em System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
em System.Data.SqlClient.TdsParserStateObject.ReadByte()
no System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, cmdHandler de SqlCommand, SqlDataReader fluxo de dados, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
no System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
no System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, returnStream Boolean, Boolean async)
no System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, returnStream Boolean, método de cadeias de caracteres, DbAsyncResult resultado)
no System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (DbAsyncResult resultado, methodName String, Boolean sendToPipe)
em System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
no TVPApp.Program.Main (String [] args)


O erro de agendador não respondendo com uma mensagem de erro semelhante à seguinte é registrado no log de erros do SQL Server:

< Data >< hora > Server usando 'dbghelp. dll' versão '4.0.5'
< Data >< hora > Server * * * não é possível obter o contexto do thread para spid #
<Date><Time> Server * *******************************************************************************
< Data >< hora > Server *
Servidor de hora > < data >< * despejo de pilha inicial:
Servidor < data >< hora > * < data >< hora > spid #
< Data >< hora > Server *
Servidor de hora > < data >< * Agendador não respondendo
< Data >< hora > Server *
<Date><Time> Server * *******************************************************************************
Assinatura de pilha de servidor < data >< hora > para o despejo é 0x000000000000002C
Código de retorno de processo de despejo tempo > servidor externo < data >< 0x20000001.
Processo de despejo externo retornou sem erros.
Processo de servidor < data >< hora > 0:0:0 (0x1670) 0x0000000004EDE160 de trabalho parece estar não respondendo no Agendador de 5. Hora de criação do thread: 13014210386757. Aproximadamente Thread da CPU usado: kernel ms 0, MS. o usuário 70106 processo de utilização de 16%. 77% ocioso do sistema. Intervalo: 70140 ms.
Processo de servidor < data >< hora > 0:0:0 (0x1670) 0x0000000004EDE160 de trabalho parece estar não respondendo no Agendador de 5. Hora de criação do segmento:

Causa

Esse problema ocorre devido a um erro no mecanismo de banco de dados do SQL Server 2012. As colunas de texto do TVP são implementadas como inserir sequências de caracteres ou buffers e um aumento no número de linhas aumenta o número de buffers. No entanto, o processo que libera buffers é demorado. Portanto, será gerado um erro de agendador não respondendo ao liberar e reduzir as operações ocorrem.

Observação: Um problema semelhante foi abordado no seguinte artigo da base de Conhecimento Microsoft. No entanto, o pacote de atualização cumulativa descrito no artigo não é um problema de tempo limite de consulta.

Corrigir 2520808 : erro de agendador não produzindo quando você executa uma consulta que usa um TVP no SQL Server 2008 ou no SQL Server 2008 R2 se for usado o SQL Profiler ou SQL Server Extended Events

Resolução

Informações da atualização cumulativa

Pacote de atualizações cumulativas 5 para SQL Server 2012 Service Pack 1 (SP1)

A correção para esse problema foi lançada na Atualização Cumulativa 5 (Cumulative Update 5). Para obter mais informações sobre como obter esse pacote de atualização cumulativa para SQL Server 2012, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:

5 pacote de atualização do 2861107 cumulativo para o SQL Server 2012Observação: Como as compilações são cumulativas, cada novo lançamento de correções contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior de SQL Server 2012 corrigir lançamento. Recomendamos que você considere aplicar o lançamento mais recente de correção que contém esse hotfix. Para obter mais informações, clique no número de artigo a seguir para visualizar o artigo na Base de Dados de Conhecimento da Microsoft:

2772858 o SQL Server 2012 compilações disponibilizadas após o lançamento do Service Pack 1 do SQL Server 2012

Solução alternativa

Para contornar esse problema, use um dos seguintes métodos:

  • Não use o SQL Profiler ou SQL Server Extended Events.

  • Clique para limpar a RPC: iniciando e RPC: concluída caixas de seleção na definição de rastreamento.

Mais informações

Essa correção não se aplica ao SQL Server 2008 ou SQL Server 2008 R2 quando este KB é publicado. Se qualquer usuário tiver o mesmo problema no SQL Server 2008 ou SQL Server 2008 R2 mesmo depois que os usuários apliquem o pacote que é descrito no seguinte artigo, validar se um tempo limite de consulta e determinar se o tempo limite pode ser resolvido. Caso contrário, envie uma solicitação para aplicar esta correção para o SQL Server 2008 ou SQL Server 2008 R2.

Corrigir 2520808 : erro de agendador não produzindo quando você executa uma consulta que usa um TVP no SQL Server 2008 ou no SQL Server 2008 R2 se for usado o SQL Profiler ou SQL Server Extended Events

Informações de pilha de chamada

sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FLookup+0x29sqlmin!CCheckReadersAndWriters::Release+0x69
sqlmin!CMainIlb::{dtor}+0x3d
sqlmin!CMainIlb::`scalar deleting destructor'+0x3d
sqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13
sqlmin!CMainIlb::Release+0xf0
sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80
sqllang!CTraceTvpData::{dtor}+0x14
sqllang!CTraceTvpData::`scalar deleting destructor'+0x1e
sqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x33
sqllang!CRpcTraceHelper::~CRpcTraceHelper+0x70
sqllang!CRPCExecEnv::~CRPCExecEnv+0x2ab
sqllang!CRPCExecEnv::`scalar deleting destructor'+0x14
sqllang!process_request+0x10b1
sqllang!process_commands+0x51c
sqldk!SOS_Task::Param::Execute+0x21e
sqldk!SOS_Scheduler::RunTask+0xa8
sqldk!SOS_Scheduler::ProcessTasks+0x299
sqldk!SchedulerManager::WorkerEntryPoint+0x261
sqldk!SystemThread::RunWorker+0x8f
sqldk!SystemThreadDispatcher::ProcessWorker+0x3c8
sqldk!SchedulerManager::ThreadEntryPoint+0x236
kernel32!BaseThreadInitThunk+0xd
ntdll!RtlUserThreadStart+0x1d
sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FDelete+0x34sqlmin!CCheckReadersAndWriters::Release+0xfb
sqlmin!CMainIlb::{dtor}+0x3d
sqlmin!CMainIlb::`scalar deleting destructor'+0x3d
sqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13
sqlmin!CMainIlb::Release+0xf0
sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80
sqllang!CTraceTvpData::{dtor}+0x11
sqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x55
sqllang!CRpcTraceHelper::TracePostExec+0x1bf
sqllang!CRPCExecEnv::OnExecFinish+0xaa
sqllang!CProtocolHeaderInfo::{dtor}+0xffffffff`ffb158e2
sqllang!process_request+0x764
sqllang!process_commands+0x51c
sqldk!SOS_Task::Param::Execute+0x21e
sqldk!SOS_Scheduler::RunTask+0xa8
sqldk!SOS_Scheduler::ProcessTasks+0x29a
sqldk!SchedulerManager::WorkerEntryPoint+0x261
sqldk!SystemThread::RunWorker+0x8f
sqldk!SystemThreadDispatcher::ProcessWorker+0x3c8
sqldk!SchedulerManager::ThreadEntryPoint+0x236
kernel32!BaseThreadInitThunk+0x1a
ntdll!RtlUserThreadStart+0x1d

Status

A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".

Author: jannaw
Writer: v-yipli
Revisor técnico: pradm; jannaw; hozhan
Editor: v-mordew

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×