Domyślna pula zasobów nie ma wystarczającej ilości pamięci systemowej do uruchomienia tego zapytania

15

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”:

![zużycie pamięci

Oto może kolejne przydatne raporty:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

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.

tatchi
źródło
Jaka jest maksymalna pamięć i całkowita pamięć RAM na serwerze?
Kin Shah,

Odpowiedzi:

6

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że MEMORYCLERK_SQLLOGPOOLzajmuje 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 Server

Tak 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_XTPwykorzystywane przez in-memory OLTPtego artykułu może pomóc rozwiązać: Wykorzystanie pamięci monitorowania i rozwiązywania problemów

Tom V - spróbuj topanswers.xyz
źródło