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.

Síntomas

Imagine el siguiente escenario:

  • Un servidor vinculado está configurado entre un servidor local y un servidor remoto que tienen instancias de Microsoft SQL Server 2012.

  • El servidor local está configurado utilizando una intercalación, como una intercalación entre mayúsculas y minúsculas.

  • El servidor remoto tiene un objeto que está configurado en una intercalación diferente desde el servidor local, como la intercalación distingue mayúsculas de minúsculas.

  • Una conexión se realiza desde el controlador JDBC de Microsoft para SQL Server, controlador de ODBC de Microsoft para SQL Server, el proveedor OLE DB de SQL o SQL Native Client en el servidor local.

  • El controlador ejecuta una consulta update de Transact-SQL como una instrucción preparada que llama al procedimiento sp_prepexec almacenado en el servidor local.

  • La consulta actualiza una tabla en el servidor remoto. Esto incluye un objeto de columna que utiliza una intercalación diferente desde el servidor local.

En este escenario, puede experimentar un rendimiento lento de la ejecución de la consulta. Si activa el plan de ejecución de la consulta de actualización, puede ver que se realiza un análisis remoto en la tabla en el servidor remoto sin filtrado. Por lo tanto, la consulta puede realizar muchas lecturas cuando se explora la tabla remota y, a continuación, recupera todas las filas al servidor local.

Por ejemplo, la consulta se prepara en el servidor local que tiene la intercalación entre mayúsculas y minúsculas de forma predeterminada y el servidor remoto tiene una tabla T1 que contiene una columna que distinguen mayúsculas de minúsculas. La actualización puede explorar todas las filas de T1.
DECLARE @p1 INTEXEC sp_prepexec @p1 output, N'@P0 NVARCHAR(16), @P1 NVARCHAR(16)',
N'UPDATE RemoteServer.RemoteDatabase.dbo.T1 SET COL1=@P0 WHERE COL2=@P1',
N'a', N'a'
SELECT @p1

Causa

El problema se produce porque la consulta de actualización preparado analizará la tabla remota cuando la intercalación no coincide en ambos servidores.

Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de la seguridad que se incluyeron en la actualización acumulativa anterior. Consulte las actualizaciones acumulativas más recientes para SQL Server:


Información de la revisiónExiste un hotfix disponible desde Microsoft. Sin embargo, esta revisión se diseñó para corregir únicamente el problema que se describe en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico.

Si la revisión está disponible para su descarga, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si esta sección no aparece, envíe una solicitud al servicio de atención al cliente y soporte técnico para obtener la revisión.

Nota: Si se producen problemas adicionales o si se requiere cualquier otra solución, será necesario crear una solicitud de revisión independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no califican para esta revisión específica. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota: El formulario de "Descarga de Hotfix disponible" muestra los idiomas para los que el Hotfix está disponible. Si no ve su idioma, es porque no hay una revisión para ese idioma.

Requisitos previosPara aplicar este hotfix, debe tener instalado de SQL Server 2012.

Información del registroNo es necesario cambiar el registro después de aplicar este hotfix.

Información de reemplazo de revisiónEste hotfix no sustituye a otras revisiones.


Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Solución alternativa

Trabajar abundan el problema, utilice uno de los métodos siguientes:

  • No utilice las instrucciones preparadas en el código fuente de aplicación de cliente. Puede utilizar extractos de ad-hoc o que se puede llamar como procedimientos almacenados en su lugar si el controlador admite dichas interfaces.

  • Usar intercalación correspondiente en ambos servidores.

Más información

Para habilitar el indicador de traza, agregue el parámetro de inicio de -T4199 o DBCC TRACEON(4199,-1) antes de que se compila la instrucción preparada para habilitar el comportamiento.

Puede utilizar uno de los métodos siguientes para habilitar el indicador de traza:

  • Antes de iniciar SQL Server, utilice el Administrador de configuración de Microsoft SQL Server, haga clic derecho en la instancia afectada y agregar el parámetro de inicio -T4199 por lo que se mantiene en los reinicios y en todas las conexiones a la instancia en el futuro.

  • Habilitar dinámicamente la configuración en tiempo de ejecución una vez que comienza el servicio y globalmente para todos los "(-1) conexiones." Asegúrese de liberar la caché de procedimientos, si planea realizar pruebas con el interruptor de encendido o apagado.

    Utilice lo siguiente para habilitar la configuración global y dinámicamente:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Utilice lo siguiente para deshabilitar la configuración global y dinámicamente:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


¿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!

×