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 が削除されました。
関連項目
参照
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)