Bloqueio, condições de impasse ou outros problemas de SQL Server quando você se conecta ao banco de dados BizTalkMsgBoxDb em BizTalk Server
Este artigo fornece informações sobre como resolver problemas de SQL Server quando você se conecta ao BizTalkMsgBoxDb
banco de dados no Microsoft BizTalk Server.
Versão original do produto: BizTalk Server
Número de KB original: 917845
Sintomas
Em BizTalk Server, você enfrenta bloqueio, condições de impasse ou outros problemas do Microsoft SQL Server ao tentar se conectar ao BizTalkMsgBoxDb
banco de dados.
Motivo
Esse problema poderá ocorrer se uma ou mais das seguintes condições forem verdadeiras:
- A opção Estatísticas de Create Automática está habilitada no
BizTalkMsgBoxDb
banco de dados. - A opção Estatísticas de Atualização Automática está habilitada no
BizTalkMsgBoxDb
banco de dados. - O grau máximo de opção de paralelismo é definido como um valor diferente de 1 para o
BizTalkMsgBoxDb
banco de dados ou a instância SQL que hospeda esse banco de dados. - Você desfragmenta ou recompila um índice no
BizTalkMsgBoxDb
banco de dados quando BizTalk Server está processando dados.
Resolução 1: desabilitar a opção Estatísticas de Create Automática e a opção Estatísticas de Atualização Automática
Para resolve esse problema, desabilite as opções Estatísticas de Create Automática e Estatísticas de Atualização Automática no BizTalkMsgBoxDb
banco de dados no SQL Server.
Resolução 2: defina a opção grau máximo de paralelismo como 1
Para resolve esse problema, defina a opção grau máximo de paralelismo como 1 na configuração do BizTalkMsgBoxDb
banco de dados ou na instância SQL que hospeda esse banco de dados.
Resolução 3: não recompilar um índice quando BizTalk Server estiver processando dados
Para resolve esse problema, não execute o bts_RebuildIndexes
procedimento armazenado ou qualquer comando SQL que recompile um índice em um banco de dados BizTalk Server quando BizTalk Server estiver processando dados.
Observação
Não há suporte para desfragmentar um índice em um banco de dados BizTalk Server.
O procedimento armazenado bts_RebuildIndexes
O único método com suporte para recompilar um índice no BizTalkMsgBoxDb
banco de dados é executar o bts_RebuildIndexes
procedimento armazenado. Em BizTalk Server 2006 e versões posteriores, você pode executar o dtasp_RebuildIndexes
procedimento armazenado para recompilar índices no BizTalkDTADb
banco de dados.
A maioria dos índices BizTalk é baseada em GUID. Muitos testes mostraram que, desde que as tabelas não sejam examinadas, os índices baseados em GUID podem ter um desempenho melhor do que índices baseados em identidade para cargas de trabalho específicas do BizTalk. Isso pode causar fragmentação. No entanto, como os dados fluem dentro e fora das tabelas em um ritmo constante, a fragmentação pode não causar problemas. Se espera-se que muitos dados sejam compilados no BizTalkMsgBox
banco de dados, você poderá recompilar periodicamente índices durante o tempo de inatividade agendado. As mesmas diretrizes se aplicam ao banco de dados de acompanhamento.
Você pode usar o DBCC DBREINDEX
comando SQL para recompilar um índice nos outros bancos de dados BizTalk Server. Para obter um exemplo de como usar o DBCC DBREINDEX
comando SQL, clique com o botão direito do mouse no bts_RebuildIndexes
procedimento armazenado e clique em Propriedades.
A Microsoft só dá suporte à reconstrução de índices de banco de dados durante BizTalk Server tempo de inatividade. Você deve parar todas as instâncias de host e SQL Server Agent antes de recompilar um índice. Ao executar o bts_RebuildIndexes
procedimento armazenado em BizTalk Server 2006 e versões posteriores, você poderá receber uma das seguintes mensagens de erro:
Mensagem de erro 1
Msg 5239, Nível 16, Estado 1, Procedimento bts_RebuildIndexes, Linha 4 Não é possível processar a ID do objeto 674101442 (objeto 'TrackingData')
Esse comando DBCC (verificador de consistência de banco de dados) não dá suporte a esse tipo de objeto.Mensagem de erro 2
Msg 5239, Nível 16, Estado 1, Procedimento bts_RebuildIndexes, Linha 4 Não é possível processar a ID do objeto 722101613 (objeto 'TrackingData') porque esse comando DBCC não dá suporte a objetos desse tipo.
Esse problema ocorre porque o TrackingData
objeto é uma exibição em versões BizTalk Server 2006 e posteriores. Para resolve esse problema, faça o seguinte e execute o bts_RebuildIndexes
procedimento armazenado:
Comente a linha a seguir no
bts_RebuildIndexes
procedimento armazenado.DBCC DBREINDEX ('[dbo].[TrackingData]') WITH NO_INFOMSGS
Adicione as linhas a seguir ao
bts_RebuildIndexes
procedimento armazenado.DBCC DBREINDEX ('[dbo].[TrackingData_0_0]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_0_1]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_0_2]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_0_3]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_1_0]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_1_1]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_1_2]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_1_3]') WITH NO_INFOMSGS