Tenemos un robusto servidor Windows 2008 x64 (CPU de 4 x 4 núcleos, 32 GB de RAM) que ejecuta SQL Server 2005 de 64 bits. Tenemos una base de datos pequeña (6 GB) pero muy importante a la que se accede un poco lento hasta que las páginas se almacenan en la memoria caché (el uso es muy aleatorio de E / S, por lo que las probabilidades son muy bajas de que una página determinada esté en la memoria y los usuarios finales quejarse de la lentitud inicial). Los discos son lo suficientemente rápidos (SAS local de 15K), pero supongo que la aplicación está un tanto torpemente escrita (es una solución COTS), así que me pregunto si hay una manera de "forzar" una base de datos en la memoria en SQL Server 2005 (2008 no es compatible por el proveedor, por lo que no deberíamos actualizar a eso todavía) para ayudar a evitar el blues inicial de llenado de caché?
Mi método actual es que ejecuto un SELECT * desde cada tabla en un script para obtener páginas de datos en la memoria, pero algunos objetos (índices, búsqueda de texto completo, etc.) no se almacenan en caché por este método (y modificar el script para interrogar índices y escriba las cláusulas WHERE apropiadas para almacenar en caché el complejo boil-the-ocean).