Comment étendre tempdb sur plusieurs fichiers?
ce blog http://blogs.msdn.com/sqlserverstorageengine/archive/2009/01/04/managing-tempdb-in-sql-server-tempdb-configuration.aspx déclare que C'est une bonne idée de "diffuser TempDB à travers au moins autant de fichiers de taille égale qu'il y a de cœurs ou de processeurs."
donc ma question de base est de savoir comment configurer mon serveur SQL pour le faire. Donc je fais un clic droit sur la tempdb, je choisis des propriétés, des fichiers et j'ajoute un fichier pour chaque CPU? Comment sait-il qu'il devrait se propager le tempdb dans ces fichiers? est-il un drapeau je doit définir?
Ai-je mal compris l'article?
2 réponses
cette astuce est la meilleure tant que vous pouvez diffuser les fichiers TempDB supplémentaires sur différents disques durs. Sinon, les différents threads qui créent des tables de température différentes seront en conflit pour le même disque physique.
Vous pouvez en effet faire exactement ce que vous dites de faire et le travail sera automatiquement réparti à travers les fichiers de données TempDB. Cela peut aussi être scripté comme tel:
ALTER DATABASE tempdb
ADD FILE (NAME = tempdev2, FILENAME = 'W:\tempdb2.mdf', SIZE = 256);
ALTER DATABASE tempdb
ADD FILE (NAME = tempdev3, FILENAME = 'X:\tempdb3.mdf', SIZE = 256);
ALTER DATABASE tempdb
ADD FILE (NAME = tempdev4, FILENAME = 'Y:\tempdb4.mdf', SIZE = 256);
GO
pour vous obtenir trois fichiers supplémentaires (i.e. 4 cœurs CPU et 4 physiques disque.)
je suis conscient que C'est un peu tard, mais le Conseil de créer un fichier par CPU est en fait un mythe que Paul Randal démonte dans son blog:
Conseil de base de l'article:If you have > 8 cores, use 8 files and if you're seeing in-memory contention, add 4 more files at a time.