web-dev-qa-db-fra.com

DDL CONTENTION SUR TEMPDB

J'ai une norme SQL Server 2005 X64 qui connaît des problèmes avec TEMPDB DDL Contention depuis quelques mois. Le serveur subira des contentions sur la ressource d'attente 2: 1: 103 (type d'attente étant PAGELATCH_EX).

Le problème semble se produire sporadiquement lorsque le serveur est sous charge décente. J'ai surveillé le taux de "Temps de destruction" et je peux sauter à 5 000 personnes pendant les périodes où nous avons des problèmes de pagelatch_ex sur 2: 1: 103. D'après ce que j'ai lu, ce comptoir devrait être 0 la majorité de l'époque, mais la nôtre semble rester entre 300 et 1100 la majorité du temps. Le compteur seulement va sur 0 quand il y a très peu d'utilisateurs sur le système.

Comment puis-je réduire ce qui cause la conflit DDL sur TEMPDB sans avoir à rechercher une aiguille dans une pile de foin?

9
David George

Je présume que vous avez déjà scindé vos fichiers de données Tempdb pour tenter d'atténuer la conflit (via la pré-production d'abord évidemment). Si vous êtes plus courageux, envisagez le drapeau de trace que Paul Randal se réfère autorisé à: http://www.sqlskills.com/blogs/paul/post/a-sql-server-dba-myth-a-day - (1230) -tempdb-devoir-les-avoir toujours-un-data-file-per-processeur-core.aspx

En ce qui concerne ce qui cause la douleur, vous devez faire un travail d'enquête:

  • cela vient de commencer à se produire? Qu'est ce qui a changé?
  • le serveur est-il sous pression de mémoire, de sorte que Tries doit être effectuée dans TEMPDB?
  • existe-t-il des processus DBA tels que CheckDB ou la ré-indexation en ligne, fonctionnant?
  • les niveaux d'isolement exotiques sont-ils utilisés ou un courtier de service? Regardez les sys.databases

Il y a une belle requête au bas de ce document Microsoft Tempdb pour essayer de déterminer ce qui utilise TEMPDB: http://technet.microsoft.com/en-gb/library/cc966545.aspx

5
Peter Schofield