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