Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Par défaut, Service Pack 1 pour SQL Server 2014 et Service Pack 3 de SQL Server 2012 inclut ce correctif et vous n’avez pas à ajouter tous les indicateurs de trace pour activer le correctif. Pour activer le correctif après l’installation d’une des mises à jour cumulatives de la section Résolution, vous devez démarrer Microsoft SQL Server en ajoutant l’indicateur de trace 1236 aux paramètres de démarrage.

Symptômes

Supposons que vous exécutez une instance de Microsoft SQL Server 2014, SQL Server 2012, SQL Server 2008 ou SQL Server 2008 R2 sur un ordinateur qui contient le nombre de processeurs. Lorsque le nombre de verrous (type de ressource = base de données) pour une base de données spécifique dépasse un certain seuil, vous rencontrez les problèmes de performances suivants :

  • Des valeurs élevées se produisent pour nombre de verrouillage spinlock LOCK_HASH .

    Remarque Consultez la section « Informations complémentaires » pour plus d’informations sur la façon de surveiller ce verrouillage spinlock.

  • Des requêtes ou des opérations qui nécessitent des verrous de base de données prennent beaucoup de temps à se terminer. Par exemple, vous pouvez remarquer les retards de performance suivants :

    • Connexions SQL Server

    • Requêtes de serveur lié

    • sp_reset_connection

    • Transactions

Remarque : Pour rechercher la liste de verrous (type de ressource = base de données) sur une base de données particulière, consultez la section « Informations complémentaires ». La valeur de seuil varie par environnement.

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
Un 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 est requis, vous devrez peut-être créer une demande de service distincte. Les coûts habituels du support technique s’appliqueront aux autres 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.

État

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

Plus d'informations

Lorsqu’une application établit une connexion à SQL Server, il établit d’abord un contexte de base de données. Par défaut, la connexion va tenter d’obtenir un verrou de base de données en mode SH. Le verrou De base de données-SH est libéré lorsque la connexion est interrompue ou contexte de base de données est modifiée au cours de la durée de vie de la connexion. Si vous avez de nombreuses connexions actives qui utilisent le même contexte de base de données, vous pouvez avoir le nombre de verrous du type de ressource de base de données pour cette base de données spécifique.

Sur l’ordinateur qui a 16 processeurs ou plus, uniquement des objets de table utilisent un schéma de verrouillage partitionnées. Toutefois, les verrous de base de données ne sont pas partitionnés. Par conséquent, verrouille de nombre de base de données est grande, plus il faut de temps pour SQL Server afin d’obtenir un verrou sur la base de données. La plupart des applications ne rencontrent pas les problèmes causés par cette conception. Mais dès que le nombre dépasse un certain seuil, temps et le travail supplémentaire est nécessaire pour obtenir le verrou. Bien que le coût est uniquement micro secondes pour chaque verrou supplémentaire, la durée totale peut augmenter rapidement car les compartiments de hachage de verrou sont protégés à l’aide d’un verrouillage spinlock. Cela entraîne des cycles processeur supplémentaires et attend pour les autres travailleurs à obtenir le verrou.

Ce correctif introduit le partitionnement de verrous de base de données lorsque l’indicateur de trace T1236 est activé au démarrage. Le verrou de base de données de partitionnement permet de conserver la profondeur de la liste de verrouillage gérable dans chaque partition locale. Cela optimise considérablement le chemin d’accès qui est utilisé pour obtenir un verrou de base de données .

Pour contrôler le verrouillage spinlock LOCK_HASH , vous pouvez utiliser la requête suivante.SET NOCOUNT ONCREATE TABLE #spinlock_stats([CaptureTime] datetime,[name] nvarchar(512),[collisions] bigint,
[spins] bigint,[spins_per_collision] real,[sleep_time] bigint,[backoffs] int)
DECLARE @counter int = 1
WHILE @counter < 100
BEGIN
INSERT INTO #spinlock_stats SELECT GETDATE() as "CaptureTime" , * FROM sys.dm_os_spinlock_stats WHERE [name] = 'LOCK_HASH'
WAITFOR DELAY '00:00:05'
SET @counter +=1
END
SELECT * FROM #spinlock_stats ORDER BY [CaptureTime]
DROP TABLE #spinlock_stats
Pour plus d’informations sur le diagnostic et la résolution des conflits de verrouillage spinlock sur SQL Server, consultez le document suivant :

Diagnostiquer et résoudre les conflits de verrouillage Spinlock sur SQL ServerRemarque : Bien que ce document soit écrit pour SQL Server 2008 R2, les informations sont toujours applicables à SQL Server 2012.

Références

Pour plus d’informations sur les indicateurs de trace dans SQL Server 2012, consultez le site Web TechNet suivant :

Informations sur les indicateurs de trace dans SQL Server 2012
Pour plus d’informations sur la façon de trouver le nombre de verrous de base de données dans l’utilisateur par base de données, utilisez la requête suivante pour calculer cette valeur :select Resource_database_id, resource_type, request_mode, request_status, count (*) 'LockCount' from sys.dm_tran_locks
group by Resource_database_id, resource_type, request_mode, request_status


Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×