Síntomas
Cuando intenta crear un índice (mediante el uso de CREATE INDEX o ALTER INDEX) en un tipo de datos espacial de una tabla grande, Microsoft SQL Server 2012 o 2014 de SQL Server puede funcionar lentamente. Puede encontrar muchos contenciones de bloqueo por bucle en SOS_CACHESTORE y SOS_SELIST_SIZED_SLOCK.
Solución
El problema se solucionó primero en la siguiente actualización acumulativa de SQL Server.
Actualización acumulativa 1 de SQL Server de 2014/en-us/help/2931693
Actualización acumulativa 7 para SQL Server 2012 SP1/en-us/help/2894115
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:
-
Actualización acumulativa más reciente para SQL Server de 2014
-
Actualización acumulativa más reciente para SQL Server 2012 SP1
Información del paquete de actualización de 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, entonces podrá ver 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 revisión disponible" muestra los idiomas para los que la revisión está disponible. Si no ve su idioma, es porque no hay una revisión para ese idioma.
Más información
Bloqueos protegen las entradas de caché de procedimiento de common language runtime (CLR). El plan de consultas para un índice creado o modificado por lo general implica un operador Apply u operador de Bucle anidado . El lado exterior de la operación JOIN es devolver las filas de la tabla espacial y la función espacial de conducción. Cada vez que se invoca la función, se puede utilizar un bloqueo por subproceso. Cuando la consulta se ejecuta con un alto grado de paralelismo, los bloqueos pueden convertirse en un cuello de botella. El diagrama siguiente es un ejemplo de dicho plan espacial.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Referencias
Para obtener más información acerca de otro problema de rendimiento al crear un índice en un tipo de datos espacial de una tabla grande en SQL Server 2012, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
CORREGIR 2887888 : disminuir el rendimiento de SQL Server al crear un índice en un tipo de datos espacial de una tabla grande en una instancia de SQL Server 2012