sys.dm_os_memory_clerks (Transact-SQL)
SQL Server のインスタンス内で現在アクティブになっている、すべてのメモリ クラークのセットを返します。
列名 |
データ型 |
説明 |
---|---|---|
memory_clerk_address |
varbinary(8) |
メモリ クラークの一意のメモリ アドレス。これは主キー列です。NULL 値は許可されません。 |
type |
nvarchar(60) |
メモリ クラークの種類。各クラークには、CLR Clerks MEMORYCLERK_SQLCLR などの特定の種類があります。NULL 値は許可されません。 |
name |
nvarchar(256) |
このメモリ クラークに内部的に割り当てられた名前。各コンポーネントには、特定の種類の複数のメモリ クラークを作成できます。同じ種類のメモリ クラークを識別するために、コンポーネントで特定の名前を選択して使用することもできます。NULL 値は許可されません。 |
memory_node_id |
smallint |
メモリ ノードの ID。NULL 値は許可されません。 |
single_pages_kb |
bigint |
割り当てられた単一ページ メモリの量 (KB 単位)。メモリ ノードの単一ページ アロケータを使用することによって割り当てられるメモリの量です。この単一ページ アロケータは、バッファ プールから直接ページを取得します。NULL 値は許可されません。 |
multi_pages_kb |
bigint |
割り当てられた複数ページ メモリの量 (KB 単位)。メモリ ノードの複数ページ アロケータを使用することによって割り当てられるメモリの量です。このメモリは、バッファ プール外に割り当てられ、メモリ ノードの仮想アロケータを利用します。NULL 値は許可されません。 |
virtual_memory_reserved_kb |
bigint |
メモリ クラークによって予約済みの仮想メモリの量。このクラークを使用するコンポーネントによって直接予約されるメモリの量です。ほとんどの場合、メモリ クラークを使用することによって仮想アドレス空間を直接予約するのは、バッファ プールのみです。NULL 値は許可されません。 |
virtual_memory_committed_kb |
bigint |
メモリ クラークによってコミット済みの仮想メモリの量。クラークによってコミットされるメモリの量です。コミット済みのメモリ量は、予約済みのメモリ量よりも常に少ない状態である必要があります。NULL 値は許可されません。 |
awe_allocated_kb |
bigint |
メモリ クラークが Address Windowing Extensions (AWE) を使用することによって割り当てたメモリ量。SQL Server では、このメカニズムを使用するのはバッファ プール クラーク (MEMORYCLERK_SQLBUFFERPOOL) のみです。また、AWE が有効な場合にのみ、使用します。NULL 値は許可されません。 |
shared_memory_reserved_kb |
bigint |
メモリ クラークによって予約済みの共有メモリの量。共有メモリおよびファイル マッピングで使用するために予約されるメモリの量です。NULL 値は許可されません。 |
shared_memory_committed_kb |
bigint |
メモリ クラークによってコミット済みの共有メモリの量。NULL 値は許可されません。 |
page_size_bytes |
bigint |
メモリ クラークが割り当てることができるページのサイズ。サポートされているサイズは、8,192 バイトのみです。NULL 値は許可されません。 |
page_allocator_address |
varbinary(8) |
ページ アロケータのアドレス。このアドレスは、メモリ クラークで一意であり、sys.dm_os_memory_objects 内で使用すると、このクラークにバインドされたメモリ オブジェクトを特定できます。NULL 値は許可されません。 |
host_address |
varbinary(8) |
メモリ クラークのホストのメモリ アドレス。詳細については、「sys.dm_os_hosts (Transact-SQL)」を参照してください。Microsoft SQL Server Native Client などのコンポーネントは、ホスト インターフェイスを経由して SQL Server のメモリ リソースにアクセスします。 0x00000000 = メモリ クラークは、SQL Server に属します。 NULL 値は許可されません。 |
権限
サーバーに対する VIEW SERVER STATE 権限が必要です。
説明
SQL Server のメモリ マネージャは 3 つの階層で構成されています。一番下の階層は、メモリ ノードです。次のレベルの階層は、メモリ クラーク、メモリ キャッシュ、およびメモリ プールから成ります。最後の階層はメモリ オブジェクトから成ります。これらのオブジェクトは、一般的に、SQL Server インスタンスでメモリを割り当てる場合に使用されます。
メモリ ノードでは、低レベルのアロケータ用インターフェイスおよび実装が用意されています。SQL Server 内部では、メモリ クラークのみがメモリ ノードにアクセスできます。メモリ クラークは、メモリ ノードのインターフェイスにアクセスしてメモリを割り当てます。また、メモリ ノードは、診断用のクラークを使用して、割り当てられたメモリを追跡します。メモリを大量に割り当てるコンポーネントはすべて、独自のメモリ クラークを作成し、クラークのインターフェイスを使用してすべてのメモリを割り当てる必要があります。コンポーネントは、SQL Server の起動時に、それぞれに対応したクラークを作成します。