今回は Denali の AWE についてまとめていきたいと思います。
32bit の Denali でも AWE を設定することができます。
DBCC MEMORYSTATUS で Memory Manager を確認すると AWE Allocated によるメモリ割り当てがされていることが確認できます。
それでは、どれくらいのメモリが割り当てられるかを試してみたいと思います。
# /3GB スイッチは無効にしてあります。
このグラフの情報は AWE を有効にしている状態で取得をしているのですが、メモリが 1.4GB 程度で頭打ちになっています。
AWE について SQL Server 2008 R2 の BOL で確認をしてみました。
awe enabled オプション
この機能は、Microsoft SQL Server の次のバージョンで削除されます。
新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください
SQL Server 2008 R2 の段階で、AWE は次バージョンで削除されることになっています。
# SQL Server 2008 ではこの記載はありませんでしたので、2008 R2 になって明記されたものになります。
SQL Server で実行されているクエリのトレースを取得できるツール、SQL Server Prolifer には [Deprecation] というイベント カテゴリが用意されており、このカテゴリに含まれるイベント クラスを取得すると実行されている SQL が次バージョンでサポートされるかを確認することができます。
Deprecation イベント カテゴリ
それでは、SQL Server 2008 R2 で [awe enabled] を有効にするクエリを実行してイベントを取得してみたいと思います。
[sp_configure] で [awe enabled] を設定しようとすると、[Deprecation Announcement] イベントが発生しているのが確認できます。
メッセージンは以下の内容が表示されています。
sp_configure ‘awe enabled’ は、今後のバージョンの SQL Server では削除される予定です。 新しい開発作業ではこの機能の使用を避け、現在この機能を使用しているアプリケーションでは変更を検討してください。 |
SQL Server Plofiler からも、[awe enabled] に関しては削除対象となっていることが確認できます。
それでは、Denali で [awe enabled] を設定するとイベントが発生するかを確認してみたいと思います。
sp_configure ‘awe enabled’ will be removed in a future version of SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use it. |
Denali でも 、[Deprecation Announcement] が発生しています。
sp_configure で awe enabled は設定ができているので、構文が使用できるかどうかで見るとこのイベントの発生で正常だと思います。
ただし、メモリが使えるかというと簡単に試したところ、通常のユーザーモードの空間内のメモリしか使えていないようですね…。
/3GB スイッチに関しては想定通りの動きとなり、2GB 以上のメモリ空間の利用が可能となります。
現在は CTP 版なので設定できているのかもしれませんが、SQL Server 2008 R2 の BOL に削除されていると記載されている以上、Denali で AWE が使えると思えるのは危険な気がしますね。
検証した感じでは、32bit の Denali のメモリ割り当ては以下のようになりそうです。
ここまでの投稿で、メモリの情報を取得しながら AWE の動作を簡単に確認してきました。
次の投稿では、AWE 有効時のメモリの使用状況の取得についてまとめたいと思います。