awe enabled オプション

この機能は、Microsoft SQL Server の次のバージョンで削除されます。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。

SQL Server では、AWE (Address Windowing Extensions) API を使用して、構成済みの仮想メモリの制限を上回る物理メモリにアクセスできます。使用できるメモリの量は、ハードウェア構成およびオペレーティング システムのサポートによって異なります。Microsoft Windows Server 2003 オペレーティング システムからは、さらに多くの物理メモリがサポートされるようになりました。したがって、AWE が使用できる物理メモリは、使用するオペレーティング システムによって異なります。

  • Windows Server 2003 Standard Edition では、では、最大 4 GB の物理メモリがサポートされます。

  • Windows Server 2003 Enterprise Edition では、最大 32 GB の物理メモリがサポートされます。

  • Windows Server 2003 Datacenter Edition では、最大 64 GB の物理メモリがサポートされます。

注意

AWE は 64 ビット オペレーティング システムには不要であり、構成できません。

使用に関する注意点

AWE を有効にする前に、次に示すオペレーティング システムごとのガイドラインを考慮してください。

Windows 2000

  • 使用可能な物理メモリが、構成されている仮想メモリ アドレス空間の制限よりも少ない場合は、AWE マップ メモリはアクティブにできません。この場合、メモリは動的に割り当てられ、awe enabled の設定に関係なく、SQL Server は非 AWE モードで実行されます。

  • 使用可能な物理メモリが、アクセス可能な仮想メモリよりも多い場合は、AWE マップ メモリをアクティブにすることができます。この場合、次の 2 つの条件が適用されます。

    • 使用可能な物理メモリが max server memory オプションの値よりも大きい場合は、SQL Server インスタンスにより max server memory で指定された量のメモリがロックされます。

    • 使用可能な物理メモリが max server memory オプションの値よりも小さいか、max server memory オプションが設定されていない場合、SQL Server インスタンスでは 128 MB を除いてすべての使用可能なメモリがロックされます。

  • AWE マップ メモリは、SQL Server がシャットダウンされるまで解放されません。AWE を有効にするたびに、max server memory オプションに値を設定すること、およびサーバー上で実行される他のアプリケーションのメモリ要件を考慮することを強くお勧めします。

Windows Server 2003

  • Windows Server 2003 上の SQL Server では、AWE マップ メモリの動的割り当てがサポートされます。AWE を有効にすると、構成されている仮想メモリ アドレス空間で設定されている制限を超えて、使用可能な物理メモリにアクセスできるため、32 ビット オペレーティング システム上で稼働しているアプリケーションの機能を拡張できます。

  • セットアップ中に SQL Server が確保する AWE マップ メモリの量はごくわずかです。さらに AWE マップ メモリが必要になった場合、オペレーティング システムは動的に SQL Server に割り当てます。同様に、必要なリソースが減少した場合、SQL Server は AWE マップ メモリをオペレーティング システムに返し、他のプロセスやアプリケーションが使用できるようにします。SQL Server とオペレーティング システムの間のこのような負荷は、min server memory パラメーターと max server memory パラメーターの制約に従って分散されます。

  • Windows Server 2003 で SQL Server が実行されている場合に、max server memory および min server memory の構成オプションを変更すると、変更は SQL Server インスタンスを再起動しなくても SQL Server に反映されます。min server memorymax server memory の詳細については、「サーバー メモリ オプション」を参照してください。

  • Windows Server 2003 では、構成されている仮想メモリ アドレス空間制限より物理メモリが少ないサーバーでも、動的 AWE マップ メモリがサポートされます。この状態で AWE を使用してもパフォーマンス上の影響はありませんが、仮想メモリ アドレスの制限を超えて物理メモリが追加された場合、サーバーを再起動しなくてもこの物理メモリは使用できます。

Windows 2000 および Windows Server 2003 ではどちらも、AWE メモリをページ ファイルにスワップ アウトすることはできません。したがって、コンピューター上で使用される他のすべてのアプリケーションの起動後に、使用可能なメモリ量を特定することによって、SQL Server のインスタンスに安全に割り当てることができるメモリ量を判断する必要があります。

システム モニターの SQL Server の Total Server Memory (KB) カウンターを使用して、AWE モードで実行されている SQL Server のインスタンスに割り当てられているメモリ量を特定します。max server memory オプションを構成するときは、他のアプリケーションや Windows 2000 および Windows Server 2003 に必要なメモリをある程度残すようにします。詳細については、「メモリ使用率の監視」を参照してください。

重要な注意事項重要

awe enabled および max server memory を使用すると、他のアプリケーションや、複数インスタンス環境またはクラスター環境で実行されている SQL Server のパフォーマンスに影響する場合があります。AWE マップ メモリの使用の詳細については、「大規模データベースのメモリ管理」を参照してください。

AWE の有効化

AWE を有効にするには、awe enabled を 1 に設定します。Windows 2000 の場合、max server memory に値が指定されていないと、SQL Server で起動時に使用可能メモリがほぼすべて確保されてしまうため、他のアプリケーションが使用できる物理メモリは 128 MB 以下しか残りません (AWE が有効でない場合は、他のアプリケーション用に残される物理メモリの量は、max server memory によって制御できます)。Windows Server 2003 の場合、AWE マップ メモリの管理は動的に行われるため、起動時に割り当てられるのは、使用可能な全物理メモリのうちわずかだけです。

このオプションが正常に有効になると、SQL Server のインスタンスの起動時に、"Address Windowing Extensions が有効です。" というメッセージが、SQL Server のエラー ログに書き込まれます。

注意

LOCK PAGE IN MEMORY 権限が SQL Server アカウントに付与されていないと、AWE は有効にできません。詳細については、「Lock Pages in Memory オプションを有効にする方法 (Windows)」を参照してください。

awe enabled オプションは拡張オプションです。sp_configure システム ストアド プロシージャを使用して awe enabled の設定を変更するには、show advanced options を 1 に設定する必要があります。AWE を有効にするには、SQL Server のインスタンスを再起動する必要があります。

次の例では、AWE を有効にして、min server memory を 1 GB に、max server memory を 6 GB に構成する方法を示しています。

まず、AWE を有効にします。

sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO

sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO

SQL Server が再起動すると、"Address Windowing Extensions enabled" というメッセージが SQL Server のエラー ログに書き込まれています。

次に、メモリを構成します。

sp_configure 'min server memory', 1024
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO

sp_configure 'min server memory', 1024
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO

SQL Server および Windows Server 2003 の前の例では、バッファー プールが 1 ~ 6 GB の間で動的に AWE マップ メモリを管理するように、メモリを設定しました (この動的な AWE のコード例は、SQL Server 2000 には適用できません)。他のアプリケーションでさらに多くのメモリが必要になると、SQL Server は割り当てられている AWE マップ メモリから必要なくなったメモリを解放できます。この例では、AWE マップ メモリは、最高で min server memory の制限である 1 GB までしか解放されません。

min server memory オプションを 1 GB に設定しても、SQL Server が自動的に 1 GB のメモリを取得するわけではありません。メモリは、その時々のデータベース サーバーの負荷に基づいて、必要に応じて割り当てられます。

AWE の無効化

AWE を無効にするには、awe enabled を 0 に設定し、RECONFIGURE ステートメントを実行します。AWE メモリは、既定では無効になっています。SQL Server のエラー ログには、awe enabled オプションの変更が記録されます。SQL Server は、再起動後は、通常の動的メモリ割り当てモードで稼働するので、仮想アドレス空間と物理メモリのうち、量の少ない方のメモリしか使用できなくなります。