A Microsoft distribui as correções do Microsoft SQL Server 2012 num ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com o lançamento da atualização do SQL Server 2012 anterior.
Sintomas
Assuma que executou muitos xp_cmdshell procedimentos armazenados ao mesmo tempo em várias sessões no Microsoft SQL Server 2012. Nesta situação, a primeira execução do xp_cmdshell procedimento armazenado não está concluída até que a última execução esteja concluída.
Causa
Esta questão ocorre porque um cabo é herdado pelos processos que são abertos quando você corre xp_cmdshell procedimentos armazenados ao mesmo tempo. A API CreateProcess requer a herança de manuseamento para redirecionar a mensagem de saída e erro padrão. Se várias execuções do xp_cmdshell procedimento armazenado funcionarem ao mesmo tempo, os processos recém-abertos podem herdar o cabo dos processos existentes. No entanto, o procedimento xp_cmdshell armazenado aguarda que a pega seja fechada por todos os processos abertos. Portanto, quando vários processos herdam a pega, todas as execuções xp_cmdshell devem esperar até que a pega seja fechada pelo processo mais longo.
Resolução
Para resolver este problema, aplique a seguinte atualização cumulativa. Esta atualização adiciona opções CreateProcess API STARTUPINFOEX que impedem a herança do cabo para o processo transversal.
Informação de atualização cumulativa
Pacote de atualização cumulativo 1 para SQL Server 2012 Service Pack 1
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 1. Para obter mais informações sobre como obter este pacote de atualização cumulativa para o SQL Server 2012 Service Pack 1, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2765331 Pacote de atualização cumulativo 1 para SQL Server 2012 Service Pack 1Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção SQL Server 2012. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2772858 O SQL Server 2012 constrói que foram lançados após o lançamento do SQL Server 2012 Service Pack 1
SQL Server 2012
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 4. Para obter mais informações sobre como obter este pacote de atualização cumulativa para o SQL Server 2012, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2758687 Pacote de atualização cumulativo 4 para SQL Server 2012Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção SQL Server 2012. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2692828 O SQL Server 2012 constrói que foram lançados após o lançamento do SQL Server 2012
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Para obter mais informações sobre a função CreateProcess, aceda ao seguinte website msdn:
Informações gerais sobre a função CreateProcessPara obter mais informações sobre o procedimento xp_cmdshell armazenado, aceda ao seguinte website da MSDN:
Informações gerais sobre o procedimento xp_cmdshell armazenado Para obter mais informações sobre um problema semelhante, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
315939 PRB: Criança herda alças não intencionais durante chamada de processo de criação