min server memoryオプションとmax server memoryオプション
min server memoryオプションには,SQL Serverの動作を保証する最低限のメモリサイズを指定する。SQL
Serverは,ここで設定された値以上にメモリを解放することはない。このオプションには,SQL
Serverのメモリサイズをアクティビティに基づき任意の値を設定できる。SQL
Serverで確保するメモリがオペレーティングシステムで必要とするメモリを圧迫しすぎることがないように,min
server memoryオプションには常に合理的な値を設定しなければならない。
max server memoryオプションには,SQL Serverが稼働している最中に割り当て可能な最大のメモリサイズを指定する。同時に複数のアプリケーションが動作するために一定量のメモリを確保したい場合や,アプリケーションを動作させるのに十分なメモリを保証したい場合には,それらのアプリケーションが必要とするメモリサイズを差し引いた値を設定する。しかし,Webや電子メールのようなサーバーアプリケーションに対してはmax
server memoryオプションを設定して,メモリを割り当てる必要はないであろう。これらのアプリケーションの負荷は常に変化し,必要なメモリサイズを予想することは難しいし,厳密な性能を要求されることもないであろうから,SQL
Serverの自動メモリ調整機能にまかせたほうがよいだろう。なぜなら,max
server memoryオプションに設定された容量のメモリは常時確保されているわけではなく,必要に応じてSQL
Serverが自動的に解放するからである。
通常アプリケーションは,起動時点で利用するメモリを確保し,あとから必要になってもそれ以上はメモリを要求しない。だが,もしアプリケーションがSQL
Serverと同じように動的にメモリを確保しようとするのであれば,アプリケーションで必要とされるメモリがSQL
Serverに割り当てられてしまうことがないように,max
server memoryオプションを設定しておく必要がある。
なお,min server memoryオプションとmax
server memoryオプションに同じ値を設定してはならない。同じ値を設定すると,SQL
Serverに割り当てられるメモリサイズが固定されてしまう。
これらのオプションの設定値を確認したり変更したりするには,次のように操作する。
-
SQL Server Enterprise Managerを起動する。
-
サーバーコンピュータを選択して右クリックすると表示されるメニューから[プロパティ]を選択する。
-
[SQL Serverのプロパティ]ダイアログボックスが表示されるので,[メモリ]パネルを開き,[SQL Serverメモリの動的設定]における[最小(MB)]と[最大(MB)]に任意の値を設定して[OK]ボタンを押す。
Fig.9-61 SQL Serverのプロパティ(メモリ)
min memory per queryオプション
min memory per queryオプションはクエリの実行のために割り当てられる最小メモリサイズを指定する。システムで同時に実行されるクエリ数が多い場合や,ソートまたはハッシュ結合などメモリを多量に必要とする操作を含むクエリを実行する場合には,このオプションに大きな値を設定することで,クエリ性能を改善することができる。しかし,このオプションにあまり大きな値を設定してはいけない。設定した最小メモリが確保されるまでクエリは実行されないのであるから,もしquery waitオプションで指定した時間を超えるまでメモリを確保できなければエラーになる。オプションには,クエリを実行するために必要不可欠な最低限度のメモリサイズを設定すればよい。もしシステム上で指定値以上のメモリ領域を利用可能であれば,クエリがメモリを効果的に使用できるように,SQL Serverは適宜メモリ領域の配分を調整してくれる。
max degree of parallelismオプション
SQL Serverが動作しているコンピュータが複数のプロセッサから構成されているSMP(Symmetrical
MultiProcessor)システムであれば,SQL Serverのスレッドを複数のプロセッサで並列に実行できるように,max
degree of parallelismオプションの値を設定するとよい。このオプションには,最大32個のプロセッサを指定することができる。しかし,本書の執筆時点で市販されているIntelプロセッサのSMPシステムは16プロセッサが最大であり,現実的にはそれ以上の値を指定することはできない。
max degree of parallelismオプションの設定を変更するには,sp_configureシステムストアドプロシージャを利用する方法のほかに,SQL
Server Enterprise Managerのサーバープロパティを利用する方法がある。一般的には,後者を利用するほうが簡単であろう。SQL
Server Enterprise Managerのサーバープロパティを利用してmax
degree of parallelismオプションの設定を確認および変更するには,次のようにすればよい。
- SQL Server Enterprise Managerを起動する。
- サーバーコンピュータを選択して右クリックすると表示されるメニューから[プロパティ]を選択する。
- [SQL Serverのプロパティ]ダイアログボックスが表示されるので,[プロセッサ]パネルを開き,[プロセッサ制御]に一覧表示されるプロセッサのなかからSQL Serverの処理に利用するものをチェックして[OK]ボタンを押す。
Fig.9-62 SQL Serverのプロパティ(プロセッサ)

| Chapter 9 29/46 |
