CORRIGER : Ralentissement des performances dans SQL Server 2012 ou SQL Server 2014 lorsque vous créez un index sur un type de données spatiales d’une table de grande taille

N° de bogue : 194033 (Maintenance du contenu) VSTS : 1494706

Symptômes

Lorsque vous essayez de générer un index (à l’aide de CREATE INDEX ou ALTER INDEX) sur un type de données spatiales d’une table de grande taille, Microsoft SQL Server 2012 ou SQL Server 2014 peut être lent. Vous trouverez de nombreux conflits de verrouillage spinlock sur SOS_CACHESTORE et SOS_SELIST_SIZED_SLOCK.

Résolution

Le problème a été tout d’abord résolu dans la mise à jour cumulative suivante de SQL Server.


Mise à jour cumulative 1 pour SQL Server 2014/en-us/help/2931693

Mise à jour cumulative 7 pour SQL Server 2012 SP1/en-us/help/2894115

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et de sécurité inclus dans la mise à jour cumulative précédente. Découvrez les dernières mises à jour cumulatives pour SQL Server :


Informations sur le correctif mise à jour de packageUn correctif pris en charge est disponible auprès de Microsoft. Toutefois, ce correctif vise à corriger uniquement le problème décrit dans cet article. Appliquez ce correctif uniquement aux systèmes rencontrant ce problème spécifique.

Si le correctif est disponible pour le téléchargement, il existe une section « Téléchargement de correctif logiciel disponible » au début de cet article de la Base de connaissances. Si cette section n’apparaît pas, soumettez une demande au Service Clients et Support de Microsoft pour obtenir le correctif.

Remarque Si des problèmes supplémentaires se produisent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être formuler une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux questions et problèmes qui ne relèvent pas de ce correctif logiciel. Pour une liste complète des numéros de téléphone service clientèle de Microsoft ou pour créer une demande de service distincte, visitez le site Web Microsoft suivant :

http://support.microsoft.com/contactus/?ws=supportRemarque Le formulaire « Téléchargement de correctif logiciel disponible » affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas votre langue, c'est parce qu'il n'y a pas de correctif disponible pour cette langue.

Plus d'informations

Verrouillages spinlock protéger les entrées du cache procédure de common language runtime (CLR). Le plan de requête pour un index créé ou modifié implique généralement un opérateur d’Appliquer ou d’un opérateur de Boucle imbriquée . Le côté extérieur de l’opération de jointure est qui retourne des lignes de la table spatiale et la fonction spatiale de conduite. Chaque fois que la fonction est appelée, un spinlock peut être utilisé. Lorsque la requête s’exécute avec des degrés de parallélisme, les verrouillages spinlock peut devenir un goulet d’étranglement. Le diagramme suivant est un exemple d’un tel plan spatial.

Spatial plan

Informations de pile d’appels(000007fa`4a1889a0) sqldk!Spinlock<212,1,1>::SpinToAcquireWithExponentialBackoff+0xd3 (000007fa`4a17e3d0) sqldk!SOS_MemoryManager::GetAddressInfo64+0x9c
(000007fa`4a1843a0) sqldk!MemoryNode::GetAllocatorType+0x36
(000007fa`4a184320) sqldk!MemoryClerkInternal::FreePages+0x3c
(000007fa`4a237a30) sqldk!ISOSHost_MemoryClerkImpl::FreePages+0x6c
(0000005f`824ab1e0) SqlServerSpatial110!ArrayOverPages<CScanner::CChain,SOS_Or_CRT_Allocator<CScanner::CChain> >::~ArrayOverPages<CScanner::CChain,SOS_Or_CRT_Allocator<CScanner::CChain> >+0x64
(0000005f`824ab640) SqlServerSpatial110!CScanner::CChainList::~CChainList+0x49
(0000005f`82501af0) SqlServerSpatial110!COrientationChecker::COrientationScanner::`scalar deleting destructor'+0x58
(0000005f`825019d0) SqlServerSpatial110!COrientationChecker::EndPolygon+0x38
(0000005f`82502440) SqlServerSpatial110!CTiledConverter::ClearAttribute+0x8b
(0000005f`82505a40) SqlServerSpatial110!CGeodeticWrapper::ClearAttribute+0x36
(0000005f`824d3fc0) SqlServerSpatial110!PopulateShapes<CGeometrySinkD>+0x1be

(000007fa`4a2605f0) sqldk!XeSosPkg::spinlock_backoff::Publish+0x138
(000007fa`4a1828a0) sqldk!SpinlockBase::Sleep+0xc5
(000007fa`345f1b80) sqllang!Spinlock<211,1,1>::SpinToAcquireWithExponentialBackoff+0xee
(000007fa`345c58c0) sqllang!TCacheStore<CacheClockAlgorithm>::GetUserData+0xbf
(000007fa`34ecfd30) sqllang!CClrCache::LookupClrCacheObject+0x7b
(000007fa`34ed00f0) sqllang!CClrCache::GetClrExecCacheObjectForUdf+0x2e
(000007fa`34f723f0) sqllang!CTableValuedClrUdf::Init+0x53a
(000007fa`34e12680) sqllang!IStreamTVF::Init+0x2d
(000007fa`37974a70) sqlmin!CQScanTVFStreamNew::Open+0x54b
(000007fa`36dfbd10) sqlmin!CQScanNLJoinTrivialNew::GetRow+0x10f
(000007fa`3794d0e0) sqlmin!CQScanIndexSortNew::BuildSortTable+0x1b6
(000007fa`3794be30) sqlmin!CQScanIndexSortNew::OpenHelper+0x79
(000007fa`36ddfa30) sqlmin!CQScanNew::OpenHelper+0x41
(000007fa`36f19920) sqlmin!CQScanXProducerNew::Open+0xc8
(000007fa`36ebbfc0) sqlmin!FnProducerOpen+0x44
(000007fa`34f0b360) sqllang!UM_LoopbackForParallelExecution+0x1a4

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Références

Pour plus d’informations sur un autre problème de performances lorsque vous créez un index sur un type de données spatiales d’une grande table dans SQL Server 2012, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

2887888 résolution : ralentir les performances dans SQL Server lorsque vous créez un index sur un type de données spatiales d’une table de grande taille dans une instance de SQL Server 2012

Author: rdorr; jannaw
Writer: v-shysun
Réviseur technique : rdorr ; brellwei ; ajayj ; jannaw ; sqlprev
Editor: v-mordew

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×