web-dev-qa-db-ja.com

「メモリを割り当てるためにAWEを使用する」とは、SQL Server 2008 R2 64ビットWindows 2003システムで何かを行うものですか?

ボックスをチェックした後、30秒後にタイムアウトになるクエリが実行を完了することに気付きました。

TechNet記事 は、「AWEは必須ではなく、64ビットオペレーティングシステムでは構成できない」と述べています。

ボックスをチェックすることは何かをしましたか?

SQL Server 2008 R2 /バージョン10.52.4000.0

3
Jon.ee

64ビットOSの場合、AWEは必要ありません。sp_configure awe enabledを使用してAWEを有効にしても、意味がありません。

Great SQL Server Debates:Lock Pages in Memory by Jonathan Kehayias を参照してください:

64ビットSQL Serverでは、SQL Serverアカウントは、AllocateUserPhysicalPages()を介してロックされたページを割り当てることができるようにするために、メモリ内のページのロック権限を必要としますが、大きな違いがいくつかあります。

AWEマップメモリ​​への依存は削除されました。 64ビットSQL ServerではAWEは必要ありません。 awe enabled sp_configureオプションには意味がありません。同じAWE API関数を継続して使用することは、割り当てられたページが確実にロックされるようにするためです。

AllocateUserPhysicalPages()を介して割り当てられたメモリは、データキャッシュとプランキャッシュの両方に使用できます。 64ビットSQL Serverでは、プランキャッシュは個別に割り当てられなくなりました(バッファープールから盗まれたページを使用するようになりました)

32ビットでのAWEのメモリ割り当ては、AllocateUserPhysicalPages()APIを使用します。 64ビットのロックページのメモリ割り当ては同じAPIを使用しますが、64ビットプロセスのVASはユーザーモードスペース用に8TBであり、AWEによる特別なマッピングを必要としないため、AWEを使用していません。

クエリのタイムアウトは、AWEとの関係が最も小さいものです。欠落しているインデックス、古い統計、不適切に構成されたメモリ設定、およびクエリのタイムアウトにつながる可能性のあるその他の多くのものがある可能性があります。

実行しているSQL Serverの特定のバージョン(およびパッチレベル)

5
Kin Shah