Partager via


Cible de mémoire tampon en anneau

La cible de mémoire tampon en anneau maintient brièvement les données d'événements en mémoire. Cette cible peut gérer des événements dans deux modes différents.

  • Le premier mode est le mode FIFO strict (premier entré, premier sorti), où l'événement le plus ancien est supprimé lorsque toute la mémoire allouée à la cible est utilisée. Dans ce mode (par défaut), l'option occurrence_number a la valeur 0.

  • Le deuxième mode est le mode FIFO par événement, où un nombre spécifié d'événements de chaque type est conservé. Dans ce mode, les événements les plus anciens de chaque type sont ignorés lorsque toute la mémoire allouée à la cible est utilisée. Vous pouvez configurer l'option occurrence_number pour spécifier le nombre d'événements de chaque type à conserver.

Le tableau suivant décrit les options disponibles pour configurer la cible de mémoire tampon en anneau.

Option Valeurs autorisées Description
max_memory Tout entier 32 bits. Cette valeur est facultative. Quantité de mémoire maximale, en kilo-octet (Ko), à utiliser. Des événements existants sont supprimés en fonction de la limite qui est atteinte en premier : max_event_limit ou max_memory. La valeur maximale est 4194303 Ko. Une attention particulière doit être prise en compte avant de définir la taille de la mémoire tampon en anneau sur des limites dans la plage de Go, car elle peut avoir un impact sur d’autres consommateurs de mémoire dans SQL Server
max_event_limit Tout entier 32 bits. Cette valeur est facultative. Nombre maximal d'événements conservés dans le tampon ring_buffer. Des événements existants sont supprimés en fonction de la limite qui est atteinte en premier : max_event_limit ou max_memory. Par défaut = 1000.
occurrence_number Une des valeurs suivantes :

0 (par défaut) = l'événement le plus ancien est supprimé lorsque toute la mémoire allouée à la cible est utilisée.

Tout entier 32 bits = nombre d’événements de chaque type à conserver avant d’être ignorés sur une base FIFO par événement.



Cette valeur est facultative.
Le mode FIFO à utiliser et, s'il est supérieur à 0, le nombre d'événements préférés de chaque type à conserver dans la mémoire tampon.
     

Ajout de la cible à une session

Pour ajouter la cible de mémoire tampon en anneau à une session Événements étendus lorsque vous créez ou modifiez une session d'événements, vous devez inclure l'instruction suivante :

ADD TARGET package0.ring_buffer  

Vérification de la sortie cible

Pour vérifier la sortie de la cible de mémoire tampon en anneau, vous pouvez utiliser la requête suivante, en remplaçant session_name par le nom de la session d’événements.

SELECT name, target_name, CAST(xet.target_data AS xml)  
FROM sys.dm_xe_session_targets AS xet  
JOIN sys.dm_xe_sessions AS xe  
   ON (xe.address = xet.event_session_address)  
WHERE xe.name = 'session_name'  

L'exemple suivant montre le format de sortie de la cible de mémoire tampon en anneau.

<RingBufferTarget eventsPerSec="" processingTime="" totalEventsProcessed="" eventCount="" droppedCount="" memoryUsed="">  
 <event name="" package="" id="" version="" timestamp="">  
    <data name="">  
      <type name="" package="" />  
      <value></value>  
      <text></text>  
    </data>  
    <action name="" package="">  
      <type name="" package="" />  
      <value></value>  
      <text></text>  
    </action>  
  </event>  
</RingBufferTarget>  

Voir aussi