sys.dm_os_memory_objects (Transact-SQL)
SQL Server によって現在割り当てられているメモリ オブジェクトを返します。sys.dm_os_memory_objects は、主にメモリ使用状況を分析し、メモリ リークを調べるときに使用できます。
列名 |
データ型 |
説明 |
---|---|---|
memory_object_address |
varbinary(8) |
メモリ オブジェクトのアドレス。NULL 値は許可されません。 |
parent_address |
varbinary(8) |
親メモリ オブジェクトのアドレス。NULL 値は許可されます。 |
pages_allocated_count |
int |
メモリ オブジェクトによって割り当てられているページ数。NULL 値は許可されません。 |
creation_options |
int |
内部使用のみ。NULL 値は許可されます。 |
bytes_used |
bigint |
内部使用のみ。NULL 値は許可されます。 |
type |
nvarchar(60) |
メモリ オブジェクトの種類。 メモリ オブジェクトが属するコンポーネント、またはメモリ オブジェクトの機能を示します。NULL 値は許可されます。 |
name |
varchar(128) |
内部使用のみ。NULL 値は許可されます。 |
memory_node_id |
smallint |
メモリ オブジェクトが使用しているメモリ ノードの ID。NULL 値は許可されません。 |
creation_time |
datetime |
内部使用のみ。NULL 値は許可されます。 |
page_size_in_bytes |
int |
メモリ オブジェクトによって割り当てられているページのサイズ。NULL 値は許可されません。 |
max_pages_allocated_count |
int |
メモリ オブジェクトによって割り当てられている最大ページ数。NULL 値は許可されません。 |
page_allocator_address |
varbinary(8) |
ページ アロケータのメモリ アドレス。NULL 値は許可されません。詳細については、「sys.dm_os_memory_clerks (Transact-SQL)」を参照してください。 |
creation_stack_address |
varbinary(8) |
内部使用のみ。NULL 値は許可されます。 |
sequence_num |
int |
内部使用のみ。NULL 値は許可されます。 |
権限
サーバーに対する VIEW SERVER STATE 権限が必要です。
説明
メモリ オブジェクトはヒープであり、割り当ての粒度はメモリ クラークよりも細かくなります。SQL Server コンポーネントでは、メモリ クラークの代わりにメモリ オブジェクトが使用されます。メモリ オブジェクトでは、ページの割り当てにメモリ クラークのページ アロケータ インターフェイスが使用されます。仮想または共有メモリ インターフェイスは使用されません。割り当てパターンに応じて、コンポーネントでは各種メモリ オブジェクトを作成し、任意のサイズの領域を割り当てることができます。
メモリ オブジェクトの通常のページ サイズは 8 KB ですが、増分メモリ オブジェクトのページ サイズは 512 バイトから 8 KB の範囲が可能です。
注意 |
---|
ページ サイズは最大割り当てではなく、メモリ クラークによって実装されたページ アロケータでサポートされている割り当ての粒度です。メモリ オブジェクトに対して 16 KB 以上の割り当てを要求することもできます。この要求は最終的に、メモリ ノードのマルチページ アロケータに送られます。 |
例
次の例では、それぞれのメモリ オブジェクトの種類によって割り当てられたメモリのサイズを返します。
SELECT SUM (pages_allocated_count * page_size_in_bytes) as 'Bytes Used', type
FROM sys.dm_os_memory_objects
GROUP BY type
ORDER BY 1 DESC;
GO