Nous avons un serveur Windows 2008 x64 costaud (processeur 4 x 4 cœurs, 32 Go de RAM) exécutant SQL Server 2005 64 bits. Nous avons une petite base de données (6 Go) mais très importante qui est un peu lente à accéder jusqu'à ce que les pages soient mises en cache en mémoire (l'utilisation est très aléatoire E / S donc les chances sont très faibles une page donnée est en mémoire et les utilisateurs finaux se plaindre de la lenteur initiale). Les disques sont assez rapides (local 15K SAS) mais je suppose que l'application est un peu maladroitement écrite (c'est une solution COTS) donc je me demande s'il y a un moyen de "forcer" une base de données en mémoire dans SQL Server 2005 (2008 n'est pas supporté par le fournisseur, donc nous ne devrions pas encore mettre à niveau vers cela) pour éviter les bleus initiaux de remplissage du cache?
Ma méthode actuelle consiste à exécuter un SELECT * à partir de chaque table d'un script pour obtenir des pages de données en mémoire, mais certains objets (index, recherche de texte intégral, etc.) ne sont pas mis en cache par cette méthode (et en modifiant le script pour interroger les index et écrire les clauses WHERE appropriées pour mettre en cache le complexe ébullition).