Najpierw odpowiem na ostatnie pytanie: Tak, możesz to zmienić, gdy serwer działa bez problemu. Jeśli chcesz zmienić wartość za pomocą SQL, możesz to zrobić za pomocą następującego zapytania
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO
Zobacz tę stronę, aby uzyskać więcej informacji na temat ustawiania pamięci na serwerze SQL.
Twoje pierwsze pytanie, niestety odpowiedź brzmi: nie mogę ci powiedzieć, nie ma mnie tam.
Przy alokacji pamięci należy wziąć pod uwagę 1 000 000 rzeczy. Jak duże są zestawy wyników z zapytań, jak często są uruchamiane, czy zapytanie, które kiedyś zajmowało 20 ms, byłoby w porządku, a teraz zajmuje 200 ms?
Domyślne ustawienia Sql zakładają, że jest to jedyna rzecz działająca na serwerze, więc po prostu ustawia pamięć na MAX_VALUE i przestaje rosnąć, gdy cała dostępna pamięć jest używana (i na dedykowanym sprzęcie, który jest dość blisko tego, co chcesz się wydarzyć (zobacz Komentarz Aaronsa dla możliwego zastrzeżenia)). Zwykle każdy serwer WWW lub inne oprogramowanie wchodzące w interakcję z bazą danych działałoby na innym sprzęcie komunikującym się z nią przez sieć.
Naprawdę musisz po prostu ustawić wartość, którą uważasz za zdrową, a jeśli twój serwer jest nadal dławiony, obniż ją. Jeśli SQL nie zapewnia wystarczającej wydajności po podaniu potrzebnej pamięci serwerowi WWW, będziesz musiał albo kupić więcej pamięci RAM, albo przenieść SQL na dedykowany sprzęt.