Wir haben einen leistungsfähigen Windows 2008 x64-Server (4 x 4-Kern-CPU, 32 GB RAM), auf dem SQL Server 2005 64-Bit ausgeführt wird. Wir haben eine kleine (6 GB), aber sehr wichtige Datenbank, auf die nur langsam zugegriffen werden kann, bis die Seiten im Arbeitsspeicher zwischengespeichert sind (die Verwendung erfolgt sehr zufällig, sodass die Wahrscheinlichkeit sehr gering ist, dass sich eine bestimmte Seite im Arbeitsspeicher befindet und die Endbenutzer sich über die anfängliche Langsamkeit beschweren). Die Festplatten sind schnell genug (lokale 15K SAS), aber ich denke, die App ist etwas umständlich geschrieben (es ist eine COTS-Lösung), und ich frage mich, ob es eine Möglichkeit gibt, eine Datenbank im Speicher in SQL Server 2005 "zu erzwingen" (2008 wird nicht unterstützt) Wir sollten also noch kein Upgrade durchführen, um den anfänglichen Cache-Filling-Blues zu vermeiden.
Meine aktuelle Methode ist, dass ich ein SELECT * aus jeder Tabelle in einem Skript ausführe, um Datenseiten in den Speicher zu bekommen, aber einige Objekte (Indizes, Volltextsuche usw.) werden von dieser Methode nicht zwischengespeichert (und das Skript so modifiziert, dass Indizes und abgefragt werden Schreiben Sie geeignete WHERE-Klauseln zum Cachen (Boil-the-Ocean-Komplex).