Aplica-se A
SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup

A Microsoft distribui correções do Microsoft SQL Server 2008 R2 como um ficheiro transferível. Uma vez que as correções são cumulativas, cada nova versão contém todas as correções e todas as correções de segurança incluídas na versão de correção anterior do SQL Server 2008 R2.

Sintomas

Considere o seguinte cenário:

  • Tem um modelo e entidade Master Data Services (MDS) que tem um atributo baseado em domínio no Microsoft SQL Server 2008 R2. O atributo baseado em domínio foi concebido para se referir ao mesmo atributo.Por exemplo, tem uma entidade Employee que tem um atributo ManagerName. O atributo ManagerName refere-se à própria entidade Employee.Nota Um gestor também é uma espécie de funcionário.

  • Existe uma hierarquia derivada definida num atributo para apresentar a relação principal/subordinada recursiva para o atributo baseado no domínio.

  • Carrega valores de dados que contêm uma ou mais referências circulares para a tabela de teste do MDS. Este comportamento causa uma referência circular e o primeiro nó no atributo não faz parte do círculo.Por exemplo, o seguinte padrão de dados mostra uma referência circular. No entanto, o valor do membro Member1 não faz parte do círculo:

    Member1 --manager attribute--> Member2 --manager attribute--> Member3 --manager attribute--> Member2 --manager attribute--> Member3

    insert into mdm.tblStgMemberAttribute(ModelName, EntityName, MemberType_ID, MemberCode, AttributeName, AttributeValue, Status_ID)Values ('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member3', 0),('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member1', 0)('EntityTest', 'ModelTest', 1, 'Member1', 'Manager', 'NULL', 0)
  • Utilize um dos seguintes métodos para carregar valores de dados para a entidade através do processo de teste do MDS:

    • Execute o Exec [mdm]. [udpStagingSweep] procedimento ao utilizar os parâmetros necessários para processar os dados faseados.

    • Clique em Gestão de Integração para visitar a home page do site do MDS. Na página Importar Exportação , no cabeçalho da secção Unbatched Staging Records , clique no Ícone de Engrenagem para processar os registos de um modelo e versão específicos.

Neste cenário, o processo em segundo plano durante o processo de teste pode encontrar um ciclo infinito quando o processo em segundo plano chama internamente [mdm]. [udpMemberRecursiveCircularCheck] procedimento.

Causa

Este problema ocorre porque os procedimentos udpStagingSweep e udpStagingMemberAttributeSave chamam o procedimento udpMemberRecursiveCircularCheck uma vez para cada linha de teste. Este comportamento deve verificar um valor de atributo baseado em domínio e devolver um erro se a linha de teste causar uma referência circular juntamente com os dados existentes. Depois de todas as linhas de teste serem verificadas, receberá os seguintes resultados:

  • As linhas de teste sem erros são aplicadas.

  • As linhas de teste com erros são anotados com um código de erro.

Se as condições descritas na secção "Sintomas" forem verdadeiras, o [mdm]. O procedimento [udpMemberRecursiveCircularCheck] é executado indefinidamente até que os recursos do servidor estejam esgotados ou ocorra um tempo limite.

Resolução

Informações de atualização cumulativa

SQL Server 2008 R2 Service Pack 1

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 2008 R2 SP1, clique no seguinte número de artigo para ver o artigo na Base de Dados de Conhecimento Microsoft:

2633146 Pacote de Atualização Cumulativa 4 para SQL Server 2008 R2 Service Pack 1Note Uma vez que as compilações são cumulativas, cada nova versão de correção contém todas as correções e todas as correções de segurança incluídas na versão de correção do SQL Server 2008 R2 SP1 anterior. Recomendamos que considere aplicar a versão de correção mais recente que contém esta correção. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2567616 As compilações do SQL Server 2008 R2 que foram lançadas após SQL Server 2008 R2 Service Pack 1 foram lançadas

Estado

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Solução

Para contornar este problema, utilize um dos métodos seguintes:

  • Para evitar o problema, siga estes passos:

    1. Reveja manualmente os valores de dados dos membros que estão a ser inseridos na tabela de teste antes de executar o processo de teste.

    2. Certifique-se de que todos os valores de membros de quaisquer atributos baseados em domínio não contêm referências circulares descritas na secção "Sintomas"

  • Quando o problema descrito na secção "Sintomas" ocorrer, siga estes passos para corrigir o problema:

    1. Identifique a sessão que está em execução no ciclo infinito.

    2. Termine a sessão para parar o ciclo.

    3. Elimine os valores de referência circular da tabela de teste antes de a referência circular ser processada novamente.

Notas

  • Para identificar a sessão a eliminar, utilize um dos seguintes métodos:

    • Utilize um monitor de atividade no Microsoft SQL Server Management Studio.

    • Selecione a partir da vista de gestão dinâmica (DMV) sys.sysprocesses ou sys.dm_exec_requests para identificar as sessões que estão a funcionar dentro da base de dados do MDS em que a CPU e o tempo estão a aumentar rapidamente. Certifique-se de que a consulta atual que está em execução na sessão corresponde aos nomes dos procedimentos descritos na secção "Causa".

  • Para identificar o procedimento atualmente em execução para as sessões, utilize um dos seguintes métodos:

    • Clique com o botão direito do rato no menu Detalhes em cada processo na lista de processos do monitor de atividade.

    • Utilize um dos seguintes parâmetros:

      • O comando DBCC INPUTBUFFER (spid) juntamente com o ID da sessão.

      • A função SELECT * FROM sys.dm_exec_sql_text(sqlhandle) juntamente com o parâmetro de identificador SQL correspondente quando utiliza a saída DMV.

Referências

Para obter mais informações sobre como abrir um monitor de atividade no SQL Server Management Studio, visite o seguinte site da MSDN:

Como abrir um monitor de atividade no SQL Server Management StudioPara obter mais informações sobre a sintaxe KILL, visite o seguinte site da MSDN:

Informações gerais sobre a sintaxe KILLPara obter mais informações sobre o sys.dm_exec_requests DMV, visite o seguinte site da MSDN:

Informações gerais sobre a DMV sys.dm_exec_requestsPara obter mais informações sobre o sys.dm_exec_sql_text DMV, visite o seguinte site da MSDN:

Informações gerais sobre a DMV sys.dm_exec_sql_textPara obter mais informações sobre o comando DBCC INPUTBUFFER, visite o seguinte site da MSDN:

Informações gerais sobre o comando DBCC INPUTBUFFERPara obter mais informações sobre o Modelo de Manutenção Incremental para SQL Server, clique no seguinte número de artigo para ver o artigo na Base de Dados de Conhecimento Microsoft:

935897 Está disponível um Modelo de Manutenção Incremental da equipa de SQL Server para fornecer correções para problemas reportadosPara obter mais informações sobre o esquema de nomenclatura para atualizações de SQL Server, clique no seguinte número de artigo para ver o artigo na Base de Dados de Conhecimento Microsoft:

822499 Novo esquema de nomenclatura para pacotes de atualização de software do Microsoft SQL Server Para obter mais informações sobre a terminologia da atualização de software, clique no seguinte número de artigo para ver o artigo na Base de Dados de Conhecimento Microsoft:

824684 Descrição da terminologia padrão utilizada para descrever as atualizações de software da Microsoft

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.