web-dev-qa-db-fra.com

Quelle fréquence de hachage / de tri dans TEMPDB est concernant?

Notre application d'entreprise utilise SQL Server pour le stockage de données et est principalement un système OLTP System. Toutefois, un élément important de notre application génère un fichier de travail significatif OLAP.

Notre latence écriture à TEMPDB est d'environ 100 ms. Cette tendance tient au fil du temps et ALLOW_SNAPSHOT_ISOLATION est tourné OFF. Nous résolvons cela concernant le problème et la seule chose intéressante que nous avons trouvée jusqu'à présent est qu'il existe un nombre important de hachage et de liquidons de tri sur TEMPDB. Nous supposons que cela vient de notre OLAP la charge de travail.

Question

Quelle fréquence des déversements concerne? Tout? Combien de déversements/secs? Nos données préliminaires indiquent que nous avons environ 2 déversements de hachage par seconde et 25 sorties de tri par minute.

Est-il possible que cette fréquence des déversements puissent être un coupable primaire dans notre latence d'écriture haute tempdb?

Les autres informations

Nous utilisons plusieurs fichiers pour TEMPDB comme recommandé par nombre de cœurs. Les fichiers tempdb sont sur un raid 1 + 0 SAN (avec des SSD de haute performance) mais c'est le même périphérique que les fichiers de données de DB principaux et les fichiers journaux. Les fichiers Tempdb sont suffisamment grands qu'ils poussent Très rarement. Nous n'utilisons pas les drapeaux de trace 1117 ou 1118. Une autre variable est que cette configuration est partagée pour un certain nombre de bases de données différentes qui subissent toutes de la charge moyenne à haute.

Notre latence de 100 ms d'écriture est beaucoup plus grande que les gammes acceptables pour la latence d'écriture tempdb que nous avons trouvée sur les compétences MSDN, SQL et d'autres sites. Cependant, la latence d'écriture pour nos autres bases de données est bonne (en dessous de 10 ms). Basé sur d'autres statistiques, il semble que nous utilisons fortement TEMPDB, en particulier pour les objets internes. Nous creusons donc pour essayer de déterminer pourquoi notre application utilise des objets internes si fortement.

Nous avons des problèmes de performance réels sur notre plate-forme qui se manifestent de manière variable. Nous surveillons des compteurs PERF, en regardant DM Vues et analysant notre comportement de l'application pour essayer de creuser les caractéristiques d'utilisation des ressources de notre système. Nous sommes concentrés sur les déversements en ce moment comme nous J'ai lu que les déversements ont un impact négatif drastique car ils sont effectués sur le disque au lieu de la mémoire. Et nous semblons avoir un très grand nombre de déversements, mais je voulais obtenir des informations sur ce que les gens considèrent "haut".

10
Matthew Rodatus

est-il possible que cette fréquence des déversements puissent être un coupable primaire dans notre latence d'écriture haute tempdb?

Oui, c'est possible , bien que typiquement la taille moyenne des déversements et à quel point ils vont de profondes (c'est-à-dire des déversements de hachage récursifs, des sortes multi-passes) qui compte plus que la fréquence en soi.

SQL Server fournit une large gamme d'informations métriques et DMV pour vous aider à résoudre les différents facteurs contributifs à la pression de TEMPDB, dont beaucoup sont discutés dans l'article technique Microsoft, "Utilisation de TEMPDB dans SQL Server 2005" (S'applique à toutes les versions 2005 en cours).

Vous devriez être en mesure d'utiliser les requêtes de guidage et de diagnostic contenues dans ce document pour commencer à identifier les causes primaires de toute pression de TEMPDB. Ne pas ignorer par ex. Version stocker une activité simplement parce que ALLOW_SNAPSHOT_ISOLATION n'est pas activé. De nombreuses fonctionnalités utilisent la version de la version (par exemple, des déclencheurs, Mars, RCSI) en dehors de l'isolement de l'instantané.

Si le tri et les déversements de hachage se révèlent être importants à un niveau élevé, vous devrez probablement configurer une surveillance spécifique pour cela. En fonction d'un peu sur votre version SQL Server, ce n'est pas toujours simple, car on pourrait l'espoir. Pour connecter des déversements de tri et de hachage avec la requête particulière qui leur a provoqué des notifications d'événements ou des événements étendus. L'article SolidQ, " Identifier et résoudre les avertissements de tri " contient des détails et de bons conseils généraux sur la résolution des causes communes.

Vous devez également travailler avec votre équipe de stockage pour déterminer la quantité de latence élevée attribuable à votre charge de travail, quelle quantité provient d'autres utilisations partagées et quelles options il y a pour la reconfiguration. Votre analyse des métriques de SQL Server aidera à informer cette discussion, de même que les métriques que le SAN Les personnes sont capables de fournir.

12
Paul White 9