連載
» 2004年07月31日 00時00分 公開

SQL Server 2000 チューニング全工程(1):メモリの自動チューニング機能を完全に把握しよう (3/3)

[沖要和,NRIラーニングネットワーク]
前のページへ 1|2|3       

混合サーバ構成時のメモリチューニング

 SQL Serverのメモリの設定は規定で以下のように設定されています。

  • SQL Serverメモリを動的に設定
  • 最小メモリ割り当ては0Mbytes
  • 最大メモリ割り当てはシステム上のRAMの総容量に設定
  • SQL Server専用に予約されたメモリはなし
  • クエリ実行のための最小メモリは1024Kbytes
図9 SQL Serverのプロパティ 図9 SQL Serverのプロパティ

 これらのメモリ使用量を設定する場合、図9に示した[SQL Server のプロパティ]ダイアログ ボックスの[メモリ]タブを使用することができます。[メモリ]タブを使用すれば、メモリ使用量を手作業で動的に設定できます。通常、サーバをSQL Server専用で稼働させる場合は、これらの設定を変更する必要はありませんが、1台のサーバに複数のSQL Serverインスタンスを稼働させる場合やIISやそのほかのOSサービスも同時に稼働させるような混合サーバ構成の場合、メモリの設定を調整することができます。この設定をEnterprise Managerで行う場合、[メモリ]タブの[SQL Server メモリの動的設定]オプションを選択し、必要に応じて、[最小]と[最大]のスライダで、メモリ使用量の最小値と最大値を設定します。また、sp_configure ストアド プロシージャを使用して最小値と最大値の設定を変更することもできます。その場合は、次のTransact-SQLコマンドを使用します。

exec sp_configure 'min server memory', <Mbytes数>
exec sp_configure 'max server memory', <Mbytes数>
Transact-SQLコマンドによるメモリ使用量の動的変更

 SQL Serverインスタンスを複数稼働させているような場合、例えば1台のサーバで昼間は業務用のインスタンスに多くのユーザーが接続し、夜間は分析用のSQL Serverインスタンスで、データロードからOLAPストアの再構築のために多くの負荷がかけられるような場合、SQL Server エージェントのジョブに以下のようなクエリを登録し、スケジュール設定することで、昼間と夜間のSQL Serverインスタンスへのメモリ割り当てをSQL Serverインスタンスの再起動なしに変更できます。

sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
exec sp_configure 'max server memory', <Mbytes数>
GO
RECONFIGURE WITH OVERRIDE
GO
クエリ登録によるスケジュール設定

注)システム ストアド プロシージャを使用してmin memory per queryの設定を変更するには、show advanced optionsを「1」に設定する必要があります。sp_configureを使用して設定を変更し、変更結果を直ちに有効にするには、RECONFIGURE WITH OVERRIDE ステートメントを使用します。このステートメントを実行しない場合、変更はSQL Serverを再起動した後で有効になります。


物理メモリの予約

 SQL Serverに対して特定のメモリを予約することも可能です。SQL Serverに対して物理メモリを予約した場合、SQL Serverがアイドル状態のときにSQL Serverメモリを別のプロセスに割り当てることが可能な場合でも、オペレーティング システムはそのページをスワップ アウトしません。専用システムの場合は、メモリを予約することでページングとキャッシュヒットが削減され、それによってSQL Serverパフォーマンスが向上する場合があります。SQL Serverに対して物理メモリを予約するには、[SQL Server のプロパティ]ダイアログ ボックスの[メモリ]タブを選択し、[SQL Server の物理メモリの予約]を選択します。

 また、ストアド プロシージャ sp_configureを使用して物理メモリを予約することもできます。その場合は、次のTransact-SQLコマンドを使用します。

exec sp_configure 'set working set size', 1
sp_configureを使用して物理メモリを予約するTransact-SQLコマンド


 次回は、SQL Serverのディスクの自動チューニング機能を解説します。(次回に続く)

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。