Używam SQL Server 2014 - 12.0.2269.0 (X64) w systemie Windows Server 2012 i mam problemy z pamięcią. Po uruchomieniu procedury składowanej, która wykonuje dość „ciężkie” obliczenia, pojawia się błąd po około 10 minutach:
Domyślna pula zasobów jest niewystarczająca do uruchomienia tego zapytania.
Mój SQL Server ma wiele baz danych (np. 15, ale nie zawsze są używane w tym samym czasie). Przejrzałem plik dziennika programu SQL Server (po otrzymaniu błędu) i zobaczyłem wiele takich wierszy:
2015-12-17 12: 00: 37.57 spid19s Nie zezwalanie na alokacje stron dla bazy danych „nazwa_bazy_danych” z powodu niewystarczającej pamięci w „domyślnej” puli zasobów. Aby uzyskać więcej informacji, zobacz „ http://go.microsoft.com/fwlink/?LinkId=330673 ”.
Raport jest generowany w dzienniku z pamięcią używaną przez każdy komponent (tak myślę). Jeśli poprawnie zinterpretuję raport, zobaczymy, że zużywa go dużo pamięci MEMORYCLERK_SQLBUFFERPOOL
. Raport można znaleźć tutaj: http://pastebin.com/kgmk9dPH
Wygenerowałem również raport z wykresem, który pokazuje ten sam „wniosek”:
Oto może kolejne przydatne raporty:
Zauważ, że widziałem również ten błąd w dzienniku:
2015-12-17 12: 04: 52.37 spid70 Nie udało się przydzielić strony z powodu presji pamięci bazy danych: FAIL_PAGE_ALLOCATION 8
Oto kilka informacji dotyczących pamięci serwera:
Całkowita pamięć na serwerze: 16 Gb
Pamięć przydzielona do serwera SQL: 12288 Mb
Używana pamięć fizyczna (od
sys.dm_os_process_memory
): 9287 Mb
Jeśli może pomóc, serwer nie obsługuje żadnej bazy danych SharePoint.
źródło
Odpowiedzi:
Chociaż prawdopodobnie nie jest to dokładna odpowiedź na twój problem, i tak opublikuję ją, mając nadzieję, że może ci to pomóc.
To, co widzisz, nie polega na tym,
MEMORYCLERK_SQLBUFFERPOOL
żeMEMORYCLERK_SQLLOGPOOL
zajmuje całą pamięć.Znany jest problem z SQL 2012 W SQL Server 2012 występują błędy braku pamięci . Mimo że korzystasz z 2014 roku, istnieje szansa, że napotkasz ten sam problem (mimo że nie mogłem znaleźć elementu do połączenia na 2014 rok).
Znany jest również ten problem zarówno w 2014, jak i 2012 r., Dotyczący przebudowy indeksu i
always on
. Nie określono, że tego używasz, ale może ten sam błąd ma inne wyzwalacze: POPRAWKA: Pamięć podręczna SQL zmniejsza się, a użycie procesora zwiększa się, gdy odbudujesz indeks tabeli w SQL ServerTak więc moją najlepszą propozycją na razie jest aktualizacja do najnowszej CU i sprawdzenie, czy nadal tak się dzieje, ponieważ ostatnio wprowadzono kilka poprawek
MEMORYCLERK_SQLLOGPOOL
. Ponieważ korzystasz z RTM tylko z 2 poprawkami bezpieczeństwa, które mogą mieć sens, dostępne jest wiele jednostek CU SP1 +.Ponieważ istnieje również dość wysokie zużycie pamięci
MEMORYCLERK_XTP
wykorzystywane przezin-memory OLTP
tego artykułu może pomóc rozwiązać: Wykorzystanie pamięci monitorowania i rozwiązywania problemówźródło