Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server gibt keinen Speicher frei, nachdem die Abfrage ausgeführt wurde

SQL Server ist in der Tat so konzipiert, dass er so viel RAM wie möglich anfordert, der nicht freigegeben wird, es sei denn, dieser Speicher wird vom Betriebssystem explizit benötigt. Ich denke, der beste Ansatz besteht darin, die Menge an RAM zu begrenzen, die der Server verwenden kann, sodass das Betriebssystem auf jeden Fall eine festgelegte Menge an Ressourcen verwenden kann. Um dies einzustellen So konfigurieren Sie Speicheroptionen mit SQL Server Management Studio :

Sie können dies auch in T-SQL mit den folgenden Befehlen tun (Beispiel):

exec sp_configure 'max server memory', 1024
reconfigure

Um den Verbrauch auf 1 GB zu beschränken.

Hinweis:Das Obige beschränkt nicht alle Aspekte von SQL Server auf diese Speichermenge. Dies steuert nur den Pufferpool und den Ausführungsplan-Cache. Dinge wie CLR, Volltext, der tatsächliche Speicher, der von den .exe-Dateien von SQL Server verwendet wird, SQL Agent, erweiterte gespeicherte Prozeduren usw. werden von dieser Einstellung nicht gesteuert. Diese anderen Dinge benötigen jedoch normalerweise nicht allzu viel Speicher, es sind der Pufferpool und der Ausführungsplan-Cache, die den Großteil des Speichers benötigen.

Ich hoffe, das hilft.