Mamy rozbudowany serwer Windows 2008 x64 (4 x 4 rdzeniowy procesor, 32 GB pamięci RAM) z uruchomionym SQL Server 2005 64-bitowym. Mamy małą (6 GB), ale bardzo ważną bazę danych, do której dostęp jest nieco powolny, dopóki strony nie zostaną buforowane w pamięci (użycie jest bardzo losowe we / wy, więc szanse są bardzo niskie, że dana strona jest w pamięci, a użytkownicy końcowi narzekać na początkową powolność). Dyski są wystarczająco szybkie (lokalny SAS 15K), ale myślę, że aplikacja jest dość niezdarnie napisana (jest to rozwiązanie COTS), więc zastanawiam się, czy istnieje sposób na „wymuszenie” bazy danych w pamięci w SQL Server 2005 (2008 nie jest obsługiwany przez dostawcę, więc nie powinniśmy jeszcze tego robić), aby uniknąć początkowego bluesa wypełniającego pamięć podręczną?
Moja obecna metoda polega na tym, że uruchamiam SELECT * z każdej tabeli w skrypcie, aby uzyskać strony danych w pamięci, ale niektóre obiekty (indeksy, wyszukiwanie pełnotekstowe itp.) Nie są buforowane przez tę metodę (i modyfikują skrypt, aby przesłuchiwał indeksy i napisz odpowiednie klauzule WHERE, aby buforować kompleks boil-the-ocean).