2008-09-04 7 views
1

In einer meiner Anwendungen habe ich eine 1-GB-Datenbanktabelle, die für Referenzdaten verwendet wird. Es hat eine große Menge an Lese-Zeilen von diesem Tisch, aber es gibt keine jemals geschrieben. Ich habe mich gefragt, ob es irgendwelche Möglichkeiten gibt, Daten in den Arbeitsspeicher zu laden, so dass sie nicht von der Festplatte abgerufen werden müssen?Readonly-Datenbanktabellen in den Speicher laden

Ich bin mit SQL Server 2005

Antwort

5

Wenn Sie genug RAM haben, zu bestimmen SQL wird eine hervorragende Arbeit tun, was in den Arbeitsspeicher zu laden und was auf der Festplatte zu suchen.

Diese Frage wird oft gestellt und sie erinnert mich an Leute, die versuchen manuell festzulegen, auf welchem ​​"Kern" ihr Prozess läuft - lassen Sie das OS (oder in diesem Fall die DB) tun, wofür es entwickelt wurde.

Wenn Sie möchten, um sicherzustellen, dass SQL in der Tat ist die Look-up-Daten aus dem Cache zu lesen, dann können Sie einen Belastungstest initiiert und verwenden Sysinternals FileMon, Process Explorer und Process Monitor zu überprüfen, ob die 1 GB Tabelle nicht aus gelesen werden . Aus diesem Grund legen wir unsere "Lookup" -Daten manchmal in eine separate Dateigruppe, so dass es sehr einfach ist, zu überwachen, wann auf die Festplatte zugegriffen wird.

Hoffe, das hilft.

1

einfach das Thema für die sql2005 zu klären und bis:

Diese Funktionalität für Leistung in SQL Server, Version 6.5 eingeführt wurde. DBCC PINTABLE hat sehr unerwünschte Nebenwirkungen. Dazu gehört das Potenzial, den Pufferpool zu beschädigen. DBCC PINTABLE ist nicht erforderlich und wurde entfernt, um zusätzliche Probleme zu verhindern. Die Syntax für diesen Befehl funktioniert weiterhin, hat jedoch keine Auswirkungen auf den Server .

Verwandte Themen