Notre application d'entreprise utilise SQL Server pour le stockage de données et est principalement un système OLTP. Cependant, un composant important de notre application génère une charge de travail OLAP importante.
Notre latence d'écriture sur tempdb est d'environ 100 ms. Cette tendance se maintient avec le temps et ALLOW_SNAPSHOT_ISOLATION
est désactivée . Nous sommes en train de résoudre ce problème et la seule chose intéressante que nous ayons trouvée jusqu'à présent est qu'il existe un nombre important de déversements de hachage et de tri dans tempdb. Nous supposons que cela vient de notre charge de travail OLAP.
Question
Quelle est la fréquence des déversements? Tout? Combien de déversements / sec? Nos données préliminaires indiquent que nous avons environ 2 déversements de hachage par seconde et 25 déversements de tri par minute.
Est-il possible que cette fréquence de déversements soit un des principaux responsables de notre latence d'écriture à haute température?
Les autres informations
Nous utilisons plusieurs fichiers pour tempdb comme recommandé par nombre de cœurs. Les fichiers tempdb se trouvent sur un SAN RAID 1 + 0 (avec des SSD hautes performances), mais il s'agit du même périphérique que les données DB et les fichiers journaux principaux. Les fichiers tempdb sont suffisamment volumineux pour se développer très rarement. Nous n'utilisons pas d'indicateurs 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 connaissent toutes une charge moyenne à élevée.
Notre latence d'écriture de 100 ms est bien supérieure aux plages acceptables de latence d'écriture tempdb que nous avons trouvées sur MSDN, SQL Skills et d'autres sites. Cependant, la latence d'écriture pour nos autres bases de données est bonne (inférieure à 10 ms). Sur la base d'autres statistiques, il semble que nous utilisons beaucoup tempdb, en particulier pour les objets internes. Nous cherchons donc à découvrir pourquoi notre application utilise si fortement les objets internes.
Nous avons de réels problèmes de performances sur notre plate-forme qui se manifestent de différentes manières. Nous avons surveillé les compteurs de performances, examiné les vues DM et analysé le comportement de notre application pour essayer de creuser dans les caractéristiques d'utilisation des ressources de notre système. Nous nous concentrons sur les déversements en ce moment car nous avons lu que les déversements ont un impact négatif drastique car ils sont effectués sur le disque plutôt qu'en mémoire. Et nous semblons avoir un très grand nombre de déversements, mais je voulais obtenir des commentaires sur ce que les gens considèrent comme «élevé».