web-dev-qa-db-fra.com

Comment résoudre le blocage sur TEMPDB

Je dispose d'une affirmation TEMPDB (je suppose qu'au moins) sur l'un des serveurs (SQL Server 2008 R2).

Le bloqueur et les serveurs (10 d'entre eux) a Pagelatatat_ex Wait Type sur la base de données TEMPDB et toutes les sessions '(bloqueur et serveurs) Wairsource est "2: 1: 122".

J'ai vérifié les codes SQL et j'ai vu que les variables de table sont créées dans la plupart des sessions et que je soupçonne que ce pourrait être le coupable.

Toute suggestion sur la manière de diagnostiquer davantage et d'atténuer ce problème est appréciée.

6
Stackoverflowuser

PAGELATCH_XX - Cela indique que SQL attend l'accès à une page de base de données, mais la page ne subit pas d'IO physique. Cette classe de problème est causée par un grand nombre d'épidémies qui tentent d'accéder à la même page physique en même temps. Le WAIT_RESOURCE est le numéro de page (le format est dbid: Fichier: Pageno) qui est accessible. Si vous diagnostiquez sur un serveur en direct, les rapports de table de bord de la performance exécuteront la page DBCC et afficheront la sortie pour vous indiquer quel objet et quel type de page la contention est pour (allocation, données, texte, ...)

Étant donné que les pages que SQL attend le plus souvent sont dans la base de données TEMPDB (numéro de page dans DBID 2), vous pouvez faire face à la conflit de loquet d'allocation TEMPDB.

La conflit de la page de la page d'allocation TEMPDB peut se produire avec des charges de travail qui créent et détruisent des objets TEMP (y compris les tables de travail/fil de travail pour les opérations de tri ou de hachage) des centaines ou des milliers de fois par seconde.

Résolution -

1.Implement drapeau de trace -t1118.

2.Commandez le nombre de fichiers de données dans TEMPDB pour optimiser la bande passante de disque et réduire la conflit dans les structures d'allocation. En règle générale, si le nombre de processeurs logiques est inférieur ou égal à 8, utilisez le même nombre de fichiers de données que les processeurs logiques. Si le nombre de processeurs logiques est supérieur à 8, utilisez 8 fichiers de données, puis si la conflit se poursuit, augmentez le nombre de fichiers de données par multiples de 4 (jusqu'au nombre de processeurs logiques) jusqu'à ce que la conflit soit réduite à des niveaux acceptables ou à faire modifications apportées à la charge de travail/code.

1
stacylaray