web-dev-qa-db-fra.com

Réchage Tempdb dans plusieurs fichiers égaux au nombre de processeurs

L'article SQL Server TEMPDB TEMPDB Les meilleures pratiques augmentent les performances suggère que je devrais diviser tempdb dans un certain nombre de fichiers égaux au nombre de cœurs. Donc, pour 4 noyaux, vous obtenez 4 fichiers.

En ayant le plus grand nombre de fichiers, vous pouvez augmenter le nombre d'opérations d'E/S physiques que SQL Server peut appuyer sur le disque à la fois. Plus d'E/S que SQL Server peut appuyer sur le niveau de disque, plus la base de données sera plus rapide. Avec des bases de données standard, SQL Server peut mettre en cache une grande quantité de données qu'il a besoin en mémoire. En raison de la nature élevée de la TEMPDB, les données doivent être écrites sur le disque avant de pouvoir être mis en cache en mémoire.

Bien que cela sonne bien en théorie, est-ce vraiment bien comme une optimisation générale? Est-ce quelque chose qui peut uniquement s'appliquer à des systèmes spécifiques où IO est très élevé?

8
Preet Sangha

Un ratio de 1/4 à 1/2 fois le nombre de fichiers de données tempdb aux cœurs de la machine a longtemps été la recommandation ...

Mais il y a maintenant encore de meilleures directives. Au passage en 2011, ma bonne amie Bob Ward, qui est la top gars en support produit SQL, a épousé une nouvelle formule: si vous avez moins de 8 cœurs, utilisez #files = #cores. Si vous avez plus de 8 cœurs, utilisez 8 fichiers et si vous voyez en-mémoire contention, ajoutez 4 fichiers supplémentaires à la fois. [link]

La dernière phrase a toujours été pertinente. Si vous ne voyez pas de contention, pourquoi ajouter des fichiers supplémentaires? Pour jouer en sécurité, la plupart ajouteront 2-4 fichiers comme point de départ pour la majorité des constructions, mais au-delà de cela, mesurer et réagir.

13
Mark Storey-Smith

Comme la plupart Général , il s'agit d'une simplification excessive de sa lumière la plus positive. Au mieux, c'est un bon point de départ (à condition que vous ne conserviez pas le fichier 1: 1 noyau: fichier de données Ratio avec une grande quantité de cœurs).

Il n'y a pas de remplacement pour une conception appropriée et une surveillance de suivi correcte et de la base. La raison derrière avoir plusieurs fichiers de données pour TEMPDB est de réduire et d'atténuer l'affectation de la page Contention. Il existe de nombreux postes publiés sur la manière de surveiller cette affirmation et de prendre des mesures en conséquence. Vous trouverez ci-dessous quelques ressources:

Défraction de la contention TEMPDB (partie 1)
[.____] briser la convention TEMPDB (Partie 2)
[.____] Analyse de la contention tempdb
[.____] optimisation de la configuration tempdb avec les événements étendus SQL Server 2012

Mais pour répondre à votre question, non ce n'est pas une partie de configuration dure et rapide de TEMPDB.

10
Thomas Stringer