Abbiamo un robusto server Windows 2008 x64 (CPU 4 x 4 core, 32 GB RAM) con SQL Server 2005 a 64 bit. Abbiamo un piccolo database (6 GB) ma molto importante che è un po 'lento ad accedere fino a quando le pagine non sono memorizzate nella cache (l'utilizzo è molto I / O casuale quindi le probabilità sono molto basse una data pagina è in memoria e gli utenti finali lamentarsi della lentezza iniziale). I dischi sono abbastanza veloci (SAS locale da 15 KB) ma immagino che l'app sia scritta in modo un po 'goffo (è una soluzione COTS) quindi mi chiedo se c'è un modo per "forzare" un database in memoria in SQL Server 2005 (2008 non è supportato dal fornitore, quindi non dovremmo ancora aggiornarlo) per evitare il blues iniziale che riempie la cache?
Il mio metodo attuale è che eseguo un SELECT * da ciascuna tabella in uno script per ottenere pagine di dati in memoria ma alcuni oggetti (indici, ricerca di testo completo, ecc.) Non vengono memorizzati nella cache da questo metodo (e modificando lo script per interrogare indici e scrivere opportune clausole WHERE per memorizzare nella cache è il complesso bollire l'oceano).