Notre base de données d'applications de fournisseurs est très intensive en TempDB.
Le serveur est virtuel (VMWare) avec 40 cœurs et 768 Go de RAM, exécutant SQL 2012 Enterprise SP3.
Toutes les bases de données, y compris TempDB, sont sur un SSD de niveau 1 dans SAN. Nous avons 10 fichiers de données tempdb, chacun pré-développé à 1 Go et ils ne se développent jamais automatiquement. Idem avec le fichier journal de 70 Go. Les indicateurs de trace 1117 et 1118 sont déjà définis.
sys.dm_io_virtual_file_stats affiche plus de 50 téraoctets en lecture / écriture sur les fichiers de données et journaux tempdb au cours du mois dernier, avec un io_stall cumulatif de 250 heures ou 10 jours.
Nous avons déjà réglé le code du fournisseur et les SP au cours des 2 dernières années.
Maintenant, nous pensons à placer des fichiers tempdb sur RAM Drive car nous avons une tonne de mémoire. Étant donné que tempdb est détruit / recréé lors du redémarrage du serveur, il s'agit d'un candidat idéal à placer sur la mémoire volatile qui est également éliminée lors du redémarrage du serveur.
J'ai testé cela sur un environnement inférieur et cela a entraîné des temps de requête plus rapides mais une utilisation accrue du processeur, car le processeur fait plus de travail au lieu d'attendre sur un lecteur tempdb lent.
Quelqu'un d'autre a-t-il mis sa tempdb sur la RAM dans des systèmes de production à haut niveau de transfert? Y a-t-il un inconvénient majeur? Y a-t-il des fournisseurs à choisir ou à éviter spécifiquement?