Sintomas
Quando você tenta criar um índice (usando o CREATE INDEX ou ALTER INDEX) em um tipo de dados espaciais de uma tabela grande, Microsoft SQL Server 2012 ou 2014 do SQL Server pode executar mal. Você pode encontrar muitos contenções spinlock em SOS_CACHESTORE e SOS_SELIST_SIZED_SLOCK.
Resolução
O problema foi corrigido primeiro na atualização cumulativa seguinte do SQL Server.
Atualização cumulativa 1 para SQL Server 2014/en-us/help/2931693
Atualização cumulativa 7 para SQL Server 2012 SP1/en-us/help/2894115
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com as atualização cumulativa anterior. Confira as mais recentes atualizações cumulativas para o SQL Server:
Informações do pacote de atualização de hotfixUm hotfix compatível foi disponibilizado pela Microsoft. No entanto, esse hotfix destina-se a corrigir somente o problema descrito neste artigo. Aplique este hotfix somente aos sistemas que apresentarem esse problema específico.
Se o hotfix estiver disponível para download, há uma seção "Download de Hotfix disponível" na parte superior deste artigo da Base de Conhecimento. Se essa seção não for exibida, envie uma solicitação ao suporte e atendimento ao cliente Microsoft para obter o hotfix.
Observação: caso outros problemas estejam ocorrendo ou caso qualquer solução de problemas seja necessária, talvez você precise criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não sejam específicos deste hotfix. Para obter uma lista completa dos números de telefone do Atendimento Microsoft e suporte ou para criar uma solicitação de serviço separada, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=supportObservação: "Download de Hotfix disponível" exibe os idiomas para os quais o hotfix está disponível. Caso você não veja seu idioma, é porque um hotfix não está disponível para esse idioma.
Mais informações
Spinlocks proteger as entradas do cache procedimento common language runtime (CLR). O plano de consulta para um índice criado ou alterado geralmente envolve um operador Apply ou um operador de Loop aninhadas . Do lado externo da operação JOIN é retornar linhas da tabela espacial e levando a função espacial. Toda vez que a função é chamada, pode ser usado um spinlock. Quando a consulta é executada com um alto grau de paralelismo, o spinlocks pode se tornar um gargalo. O diagrama a seguir é um exemplo de tal plano espacial.
Status
A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".
Referências
Para obter informações adicionais sobre outro problema de desempenho quando você cria um índice em um tipo de dados espaciais de uma tabela grande no SQL Server 2012, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
Corrigir 2887888 : diminuir o desempenho do SQL Server quando você cria um índice em um tipo de dados espaciais de uma tabela grande em uma instância do SQL Server 2012