sys.dm_os_memory_objects (Transact-SQL)

Retourne des objets mémoire qui sont actuellement alloués par SQL Server. sys.dm_os_memory_objects permet principalement d'analyser l'utilisation de la mémoire et d'identifier d'éventuelles fuites de mémoire.

Nom de colonne

Type de données

Description

memory_object_address

varbinary(8)

Adresse de l'objet mémoire. Cette colonne n'accepte pas la valeur NULL.

parent_address

varbinary(8)

Adresse de l'objet mémoire parent. Cette colonne accepte la valeur NULL.

pages_allocated_count

int

Nombre de pages allouées par cet objet. Cette colonne n'accepte pas la valeur NULL.

creation_options

int

À usage interne uniquement. Cette colonne accepte la valeur NULL.

bytes_used

bigint

À usage interne uniquement. Accepte la valeur NULL.

type

nvarchar(60)

Type d'objet mémoire.

Indique un composant auquel cet objet mémoire appartient ou la fonction de l'objet mémoire. Cette colonne accepte la valeur NULL.

name

varchar(128)

À usage interne uniquement. Accepte la valeur NULL.

memory_node_id

smallint

ID d'un nœud de mémoire utilisé par cet objet mémoire. Cette colonne n'accepte pas la valeur NULL.

creation_time

datetime

Interne uniquement. Accepte la valeur NULL.

page_size_in_bytes

int

Taille des pages allouées par cet objet. Cette colonne n'accepte pas la valeur NULL.

max_pages_allocated_count

int

Nombre maximum de pages allouées par cet objet mémoire. Cette colonne n'accepte pas la valeur NULL.

page_allocator_address

varbinary(8)

Adresse mémoire de l'allocateur de page. Cette colonne n'accepte pas la valeur NULL. Pour plus d'informations, consultez sys.dm_os_memory_clerks (Transact-SQL).

creation_stack_address

varbinary(8)

À usage interne uniquement. Accepte la valeur NULL.

sequence_num

int

À usage interne uniquement. Cette colonne accepte la valeur NULL.

Autorisations

Nécessite l'autorisation VIEW SERVER STATE sur le serveur.

Notes

Les objets mémoire sont des segments. Ils fournissent des allocations qui ont une granularité plus fine que celles fournies par les Clerks de mémoire. Les composants SQL Server utilisent des objets mémoire au lieu des Clerks de mémoire. Les objets mémoire utilisent l'interface d'allocation de page du Clerk de mémoire pour allouer les pages. Ils n'utilisent pas les interfaces de mémoire virtuelle ou partagée. Selon les modèles d'allocation, les composants peuvent créer différents types d'objets mémoire pour allouer des régions de taille arbitraire.

La taille de page typique pour un objet mémoire est de 8 Ko. Toutefois, les objets mémoire incrémentiels peuvent avoir des tailles de page allant de 512 octets à 8 kilo-octets.

[!REMARQUE]

La taille de page n'est pas une allocation maximale. Il s'agit en fait de granularité d'allocation prise en charge par un allocateur de page et mise en œuvre par un Clerk de mémoire. Vous pouvez demander des allocations de 16 Ko et plus aux objets mémoire et la demande est éventuellement renvoyée à l'allocateur multipage du nœud de mémoire.

Exemple

L'exemple suivant retourne la quantité de mémoire allouée par chaque type d'objet mémoire.

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