Microsoft SQL Server 2008

Dostosowanie alokacji pamięci dla zapytań w SQL Server 2008 Udostępnij na: Facebook

Wskazówki dotyczące SQL Server

Opublikowano: 13 maja 2009

Domyślnie SQL Server 2008 przydziela minimum 1024 kB pamięci do wykonania zapytań. Taka alokacja pamięci jest gwarantowana dla każdego użytkownika, a można ją ustalić na dowolną wartość od 512 kB do 2 GB.

Jeśli zwiększymy minimalną wielkość zapytania, to możemy poprawić wydajność zapytań, które intensywnie wykorzystują procesor, na przykład związane z sortowaniem lub mieszaniem.
Jeśli ustalimy wartość zbyt wysoko, to spowodujemy pogorszenie całkowitej wydajności systemu. Z tego powodu należy zmieniać minimalną wielkość zapytania tylko w przypadku problemów z szybkim wykonywaniem zapytań.

W większości przypadków wystarczy domyślne ustawienie 1024 RAM. Możemy jednak rozważyć zmianę tej wartości, jeśli serwer działa w szczególnie obciążonym środowisku, w którym jednocześnie uruchomionych jest wiele zapytań przy oddzielnych połączeniach użytkownika, lub w wyjątkowo powolnym środowisku, z kilkoma (ale dużymi lub złożonymi) zapytaniami.

W takim przypadku na decyzję dotyczącą dostosowania wielkości zapytań powinny wpływać cztery czynniki:

  • Całkowita ilość wolnej pamięci (gdy system jest w stanie bezczynności, a SQL jest uruchomiony).
  • Średnia liczba jednocześnie uruchomionych zapytań w oddzielnych połączeniach użytkownika.
  • Średnia wielkość zapytania.
  • Czas odpowiedzi zapytania, jaki chcemy osiągnąć.

Często konieczny jest kompromis pomiędzy tymi wartościami. Nie można zawsze otrzymać natychmiastowej reakcji, ale można zoptymalizować działanie na podstawie dostępnych zasobów. Jako punktu wyjścia do optymalizacji należy używać następującego wzoru:

WolnaPamięć / (ŚrWielkośćZapytania * ŚrLiczbaJednoczesnychZapytań)

Jeśli, na przykład, system ma 2200 MB, średnia wielkość zapytania wynosi 2 MB, zaś średnia liczba jednoczesnych zapytań to 50, optymalna wielkość zapytania wynosi 2200 MB / (2*20) czyli 22 MB. Zwykle wartość ta reprezentuje bieżące środowisko i należy utrzymywać ją na możliwie niskim poziomie.

Aby przydzielić odpowiednią pamięć dla zapytań, należy wykonać podane niżej kroki:

  • W oknie dialogowym Server Properties (Właściwości serwera) przechodzimy do strony Memory (Pamięć), a następnie ustawiamy wartość w polu Minimum Memory Per Query (Minimalna pamięć na zapytanie). Wartość określamy w kilobajtach.
  • Klikamy OK.

Do określenia minimalnej pamięci dla zapytań można użyć składowanej procedury sp_configure.

Korzystamy z następujących poleceń Transact-SQL:

exec configure „min memory per query”, <liczba kilobajtów>

Z książki wydawnictwa Microsoft Press, Microsoft SQL Server 2008 Administrator's Pocket Consultant.

 

 Do początku strony Do początku strony

Microsoft SQL Server 2008