私は最後の質問に最初に答えます:はい、問題なくサーバーが稼働している間に変更できます。SQL経由で値を変更したい場合は、次のクエリで実行できます。
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO
SQLサーバーでのメモリ設定の詳細については、このページを参照してください。
あなたの最初の質問、残念ながら答えは次のとおりです。私はあなたに言うことはできません。
メモリを割り当てるときに考慮する必要がある1,000,000の事柄があります。クエリの結果セットの大きさ、クエリの実行頻度はどれくらいですか?20ミリ秒かかっていたクエリで200ミリ秒かかっても大丈夫ですか?
Sqlのデフォルトは、それがサーバーで実行されている唯一のものであることを想定しているため、メモリをMAX_VALUEに設定するだけで、利用可能なすべてのメモリが使用されているとき(そして、発生したいものにかなり近い専用ハードウェア上で)成長を停止します(アーロンは警告の可能性についてコメントしています))。通常、データベースとやり取りするWebサーバーやその他のソフトウェアは、ネットワーク経由で通信する別のハードウェア上にあります。
あなたは本当にそれをあなたが正気であると思う値に設定する必要があるだけです、そしてあなたのウェブサーバーがまだメモリが詰まっているならそれを下げてください。Webサーバーに必要なメモリを割り当てた後、SQLで十分なパフォーマンスが得られない場合は、RAMを追加購入するか、SQLを専用ハードウェアに移動する必要があります。