sys.dm_os_memory_clerks (Transact-SQL)

SQL Server のインスタンス内で現在アクティブになっている、すべてのメモリ クラークのセットを返します。 

列名

データ型

説明

memory_clerk_address

varbinary(8)

メモリ クラークの一意のメモリ アドレスを指定します。 これは主キー列です。 NULL 値は許可されません。

nvarchar(60)

メモリ クラークの種類を指定します。 各クラークには、CLR Clerks MEMORYCLERK_SQLCLR などの特定の種類があります。 NULL 値は許可されません。

name

nvarchar(256)

このメモリ クラークに内部的に割り当てられた名前を指定します。 コンポーネントには、特定の種類の複数のメモリ クラークを作成できます。 同じ種類のメモリ クラークを識別するために、コンポーネントで特定の名前を選択して使用することもできます。 NULL 値は許可されません。

memory_node_id

smallint

メモリ ノードの ID を指定します。 NULL 値は許可されません。

pages_kb

bigint

このメモリ クラークに割り当てられたページ メモリの量を KB 単位で指定します。 NULL 値は許可されません。

virtual_memory_reserved_kb

bigint

メモリ クラークによって予約済みの仮想メモリの量を指定します。 NULL 値は許可されません。

virtual_memory_committed_kb

bigint

メモリ クラークによってコミット済みの仮想メモリの量を指定します。 コミット済みのメモリ量は、予約済みのメモリ量よりも常に少ない状態である必要があります。 NULL 値は許可されません。

awe_allocated_kb

bigint

物理メモリでロックされ、オペレーティング システムによってページ アウトされないメモリの量を KB 単位で指定します。 NULL 値は許可されません。

shared_memory_reserved_kb

bigint

メモリ クラークによって予約済みの共有メモリの量を指定します。 共有メモリおよびファイル マッピングで使用するために予約されるメモリの量です。 NULL 値は許可されません。

shared_memory_committed_kb

bigint

メモリ クラークによってコミット済みの共有メモリの量を指定します。 NULL 値は許可されません。

page_size_in_bytes

bigint

このメモリ クラークのページ割り当ての粒度を指定します。 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 の起動時に、それぞれに対応したクラークを作成します。

互換性サポート

SQL Server 2012 では、以下の列の名前が変更されました。

以前の列名

新しい列名

single_pages_kb

pages_kb

SQL Server 2012 では、列 multi_pages_kb が削除されました。

関連項目

参照

動的管理ビューおよび関数 (Transact-SQL)

SQL Server オペレーティング システム関連の動的管理ビュー (Transact-SQL)

sys.dm_os_sys_info (Transact-SQL)

sys.dm_exec_query_memory_grants (Transact-SQL)

sys.dm_exec_requests (Transact-SQL)

sys.dm_exec_query_plan (Transact-SQL)

sys.dm_exec_sql_text (Transact-SQL)