Jaki jest dobry sposób sprawdzenia, ile (rzeczywistej) pamięci jest obecnie używane? W porównaniu do tego, ile jest przydzielonego sobie serwera SQL Server?Jak zmusić serwer SQL do zwolnienia pamięci?
byłem uciekania się do memory_utilization_ procentach ale które nie wydają się zmienić po uruchomieniu następujące czynności, aby zwolnić pamięć.
SELECT [Memory_usedby_Sqlserver_MB] = (physical_memory_in_use_kb/1024) ,
[Memory_utilization_percentage] = memory_utilization_percentage
FROM sys.dm_os_process_memory;
DBCC FREESYSTEMCACHE ('ALL')
DBCC FREESESSIONCACHE
DBCC FREEPROCCACHE
SELECT [Memory_usedby_Sqlserver_MB] = (physical_memory_in_use_kb/1024) ,
[Memory_utilization_percentage] = memory_utilization_percentage
FROM sys.dm_os_process_memory;
Rozwiązanie jest spadek maks pamięci serwera dla SQL Server i zwiększać go ponownie, aby wymusić SQL Server, aby zwolnić nieużywane ale przydzieloną pamięć. Jednak problem z tym podejściem polega na tym, że nie możemy być pewni, jak daleko zmniejszyć maksymalną pamięć serwera, a tym samym uruchomić ryzyko zabicia SQL Server. Dlatego ważne jest, aby zrozumieć, ile SQL Server "faktycznie" używa przed zmniejszeniem wartości dla maksymalnej pamięci serwera.
DBCC darmowe rozmowy nie są zaprojektowane, aby zwolnić pamięć z powrotem do systemu operacyjnego, ale jedynie zaznaczyć stron związane z ich funkcją jako dostępną. Gdy serwer przydzieli pamięć, zachowuje ją, nie ma powodu, aby przeprowadzała kosztowną reorganizację i opróżnianie, opcja maksymalnej pamięci jest wyjątkiem. Prawdziwe pytanie brzmi być może * dlaczego * musisz to zrobić? –
W przypadku aktywnych aktywnych wystąpień SQL Server czasami będzie trzymać więcej pamięci niż potrzeba i będzie ograniczać inne wystąpienia, które potrzebują ich rozpaczliwie. Czy istnieje lepszy sposób adresowania tego innego niż mniej instancji na węzeł i zwiększenie pamięci fizycznej? – Tigerjz32
1) To pytanie należy do DBA. 2) Nie rób tego. Poinformuj program SQL Server o tym, ile pamięci może używać, i na ogół zużywa tyle, ile potrzebuje, aż do tego limitu ... Zasadniczo będzie to rozmiar całej bazy danych plus niektóre, chyba że baza danych jest większy niż limit pamięci. Jeśli nie chcesz tego robić, musisz ustawić limit, używając ustawienia 'max server memory'. – Ben