Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

Microsoft distribuye las soluciones de Microsoft SQL Server 2008 R2 como un archivo que se puede descargar. Debido a que las correcciones son acumulativas, cada versión nueva contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de SQL Server 2008 R2.

Síntomas

Imagine la siguiente situación:

  • Tiene un modelo de servicios de datos maestros (MDS) y una entidad que tiene un atributo basado en el dominio en Microsoft SQL Server 2008 R2. El atributo basado en el dominio está diseñado para hacer referencia a sí mismo al mismo atributo. Por ejemplo, tiene una entidad de empleado que tiene un atributo ManagerName . El atributo ManagerName se refiere a la misma entidad de empleado.Nota Un administrador es también un tipo de empleado.

  • Hay una jerarquía derivada que se define en un atributo para mostrar la relación de elemento primario y secundario recursiva para el atributo basado en el dominio.

  • Se cargan valores de datos que contienen una o más referencias circulares a la tabla de almacenamiento provisional de MDS. Este comportamiento provoca una referencia circular, y el primer nodo del atributo no forma parte del círculo. Por ejemplo, el siguiente patrón de datos muestra una referencia circular. Sin embargo, el valor de miembro de Member1 no forma parte del círculo:

    Member1--atributo de administrador--> el atributo de administrador--> Member3--Attribute Manager-->--administrador--> 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)
  • Use uno de los siguientes métodos para cargar valores de datos en la entidad con el proceso de ensayo de MDS:

    • Ejecute el exec [MDM]. [ udpStagingSweep] procedimiento usando los parámetros necesarios para procesar los datos preconfigurados.

    • Haga clic en Administración de integración para visitar la página de inicio del sitio web de MDS. En la página importar exportación , en el encabezado de la sección registros de ensayo no procesados , haga clic en el icono de engranaje para procesar los registros para un modelo y una versión concretos.

En este escenario, el proceso en segundo plano durante el proceso de ensayo puede encontrarse con un bucle infinito cuando el proceso en segundo plano llama internamente al [MDM]. [ procedimiento udpMemberRecursiveCircularCheck] .

Causa

Este problema se produce porque los procedimientos udpStagingSweep y udpStagingMemberAttributeSave llaman al procedimiento udpMemberRecursiveCircularCheck una vez para cada fila de almacenamiento provisional. Este comportamiento debe comprobar un valor de atributo basado en el dominio y devuelve un error si la fila de almacenamiento provisional provoca una referencia circular junto con los datos existentes. Una vez seleccionadas todas las filas de almacenamiento provisional, recibirá los siguientes resultados:

  • Se aplican las filas provisionales sin errores.

  • Las filas provisionales con errores se anotan con un código de error.

Si las condiciones que se describen en la sección "síntomas" son verdaderas, la [MDM]. [ udpMemberRecursiveCircularCheck] el procedimiento se repite indefinidamente hasta que se agoten los recursos del servidor o se agote el tiempo de espera.

Resolución

Información sobre la actualización acumulativa

Service Pack 1 de SQL Server 2008 R2

La corrección para este problema se publicó por primera vez en la actualización acumulativa 4. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2 SP1, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2633146 Paquete de actualización acumulativa 4 para SQL Server 2008 R2 Service Pack 1Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2 SP1. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2567616 Las compilaciones de SQL Server 2008 R2 que se publicaron después de que se publicó SQL Server 2008 R2 Service Pack 1

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".

Solución

Para resolver este problema, utilice uno de los métodos siguientes:

  • Para evitar el problema, siga estos pasos:

    1. Revise manualmente los valores de datos de miembros que se insertan en la tabla de ensayo antes de ejecutar el proceso de ensayo.

    2. Asegúrese de que todos los valores de miembro de los atributos basados en el dominio no contienen referencias circulares que se describen en la sección "síntomas"

  • Cuando se produzca el problema que se describe en la sección "síntomas", siga estos pasos para corregir el problema:

    1. Identifique la sesión que se está ejecutando en el bucle infinito.

    2. Elimine la sesión para detener el bucle.

    3. Elimine los valores de referencia circular de la tabla de ensayo antes de volver a procesar la referencia circular.

Notas

  • Para identificar la sesión que se va a eliminar, use uno de los métodos siguientes:

    • Usar un monitor de actividad en Microsoft SQL Server Management Studio.

    • Seleccione entre Sys. sysprocesses o Sys.dm_exec_requests vista de administración dinámica (DMV) para identificar las sesiones que funcionan dentro de la base de datos de MDS en las que la CPU y el tiempo se incrementan rápidamente. Asegúrese de que la consulta actual que se está ejecutando en la sesión coincide con los nombres de los procedimientos que se describen en la sección "causa".

  • Para identificar el procedimiento que se ejecuta actualmente en las sesiones, use uno de los métodos siguientes:

    • Haga clic con el botón derecho en el menú detalles de cada proceso en la lista procesos del monitor de actividades.

    • Use uno de los siguientes parámetros:

      • El comando DBCC INPUTBUFFER (SPID) junto con el identificador de la sesión.

      • La función SELECT * FROM sys.dm_exec_sql_text (SQLHANDLE) junto con el parámetro de controlador SQL correspondiente cuando se usa la salida de DMV.

Referencias

Para obtener más información sobre cómo abrir un monitor de actividad en SQL Server Management Studio, visite el siguiente sitio web de MSDN:

Cómo abrir un monitor de actividad en SQL Server Management StudioPara obtener más información sobre la sintaxis Kill , visite el siguiente sitio web de MSDN:

Información general sobre la sintaxis KILLPara obtener más información sobre el Sys.dm_exec_requests DMV, visite el siguiente sitio web de MSDN:

Información general sobre el sys.dm_exec_requests DMVPara obtener más información sobre el Sys.dm_exec_sql_text DMV, visite el siguiente sitio web de MSDN:

Información general sobre el sys.dm_exec_sql_text DMVPara obtener más información sobre el comando DBCC INPUTBUFFER , visite el siguiente sitio web de MSDN:

Información general sobre el comando DBCC INPUTBUFFERPara obtener más información sobre el modelo de mantenimiento incremental para SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

935897 Un modelo de servicio incremental disponible en el equipo de SQL Server para ofrecer revisiones para problemas detectadosPara obtener más información sobre el esquema de nomenclatura de las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

822499 Nuevo esquema de nomenclatura para los paquetes de actualización de software de Microsoft SQL ServerPara obtener más información acerca de la terminología de actualizaciones de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

824684 Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×