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.