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)」を参照してください。MicrosoftSQL Server Native Client などのコンポーネントは、ホスト インターフェイスを経由して SQL Server のメモリ リソースにアクセスします。

0x00000000 = メモリ クラークは、SQL Server に属します。

NULL 値は許可されません。

権限

サーバーに対する VIEW SERVER STATE 権限が必要です。

説明

SQL Server のメモリ マネージャは 3 つの階層で構成されています。一番下の階層は、メモリ ノードです。次のレベルの階層は、メモリ クラーク、メモリ キャッシュ、およびメモリ プールから成ります。最後の階層はメモリ オブジェクトから成ります。これらのオブジェクトは、一般的に、SQL Server インスタンスでメモリを割り当てる場合に使用されます。

メモリ ノードでは、低レベルのアロケータ用インターフェイスおよび実装が用意されています。SQL Server 内部では、メモリ クラークのみがメモリ ノードにアクセスできます。メモリ クラークは、メモリ ノードのインターフェイスにアクセスしてメモリを割り当てます。また、メモリ ノードは、診断用のクラークを使用して、割り当てられたメモリを追跡します。メモリを大量に割り当てるコンポーネントはすべて、独自のメモリ クラークを作成し、クラークのインターフェイスを使用してすべてのメモリを割り当てる必要があります。コンポーネントは、SQL Server の起動時に、それぞれに対応したクラークを作成します。