Database measures
Database measures {( options )} -> Résultat
Paramètre | Type | Description | |
---|---|---|---|
options | Object | → | Options de retour |
Résultat | Object | ← | Objet contenant des mesures sur la base |
Description
La commande Database measures vous permet d'obtenir un ensemble d'informations détaillées sur les événements du moteur de base de données de 4D. Les informations renvoyées concernent les accès en lecture/écriture aux données depuis ou vers le disque ou le cache ainsi que l'utilisation des index de la base, les recherches et les tris.
Database measures retourne un seul objet contenant toutes les mesures utiles. Le paramètre options vous permet de paramétrer les informations retournées.
Présentation de l'objet retourné
L'objet retourné par la commande contient une seule propriété, nommée "DB", dont la structure est la suivante :
{ "DB": { "diskReadBytes": {…}, "cacheReadBytes": {…}, "cacheMissBytes": {…}, "diskWriteBytes": {…}, "diskReadCount": {…}, "cacheReadCount": {…}, "cacheMissCount": {…}, "diskWriteCount": {…}, "dataSegment1": {…}, "indexSegment": {…}, "tables": {…}, "indexes": {…} }}
Cet objet est composé de huit propriétés élémentaires qui contiennent les mesures de base ("diskReadBytes", "cacheReadBytes", "cacheMissBytes", "diskWriteBytes", "diskReadCount", "cacheReadCount", "cacheMissCount", "diskWriteCount") ainsi que des propriétés additionnelles ("dataSegment1", "indexSegment", "tables", "index") qui peuvent elles-mêmes contenir les propriétés élémentaires mais appliquées à des niveaux différents (voir ci-dessous).
Note : Une propriété est présente dans l'objet uniquement si elle contient des valeurs. Lorsqu'une propriété est vide, elle n'est pas incluse dans l'objet. Par exemple, si la base a été ouverte en mode lecture seulement et que les index n'ont pas été sollicités, l'objet retourné ne contiendra pas les propriétés "diskWriteBytes", "diskWriteCount", "indexSegment" et "indexes".
Propriétés élémentaires
Les propriétés élémentaires peuvent être présentes à différents niveaux de l'objet DB. Elles retournent les mêmes informations mais sur des périmètres spécifiques. Voici la description de ces propriétés :
Nom | Information retournée |
---|---|
diskReadBytes | Octets lus depuis le disque |
cacheReadBytes | Octets lus depuis le cache |
cacheMissBytes | Octets manqués depuis le cache |
diskWriteBytes | Octets écrits sur le disque |
diskReadCount | Nombre d'accès en lecture depuis le disque |
cacheReadCount | Nombre d'accès en lecture depuis le cache |
cacheMissCount | Nombre d'accès manqués dans le cache |
diskWriteCount | Nombre d'accès en écriture sur le disque |
Ces huit propriétés élémentaires ont toutes la même structure d'objet, par exemple :
"diskReadBytes": {
"value": 33486473620,
"history": [ // optionnel
{"value": 52564,"time": -1665},
{"value": 54202,"time": -1649},
…
]
}
- "value" (numérique): La propriété "value" contient un nombre représentant soit une quantité d'octets, soit un nombre d'accès. Cette valeur représente la somme théorique des valeurs de l'objet "history" (même si l'objet "history" n'est pas présent ).
- "history" (tableau d'objets) : Le tableau d'objets "history" est une compilation de valeurs d'événements groupés par seconde. La propriété "history" est présente uniquement si elle a été demandée via le paramètre options (cf. ci-dessous). Le tableau "history" contient un maximum de 200 éléments. Chaque élément du tableau est lui-même un objet contenant deux propriétés : "value" et "time".
- "value" (numérique) : nombre d'octets ou d'accès décomptés durant la période de temps indiquée par la propriété "time" associée.
- "time" (numérique) : nombre de secondes écoulées depuis l'appel de la fonction. Dans l'exemple ci-dessus, ("time": -1649) signifie "il y a 1649 secondes" (ou plus précisément, entre 1649 et 1650 secondes). Pendant cette unique seconde, 54,202 octets ont été lus sur le disque.
Le tableau "history" ne contient pas séquentiellement toutes les secondes (-1650,-1651,-1652, etc.). La valeur précédente est -1665, ce qui signifie que rien n'a été lu sur le disque durant la période de 15 secondes entre 1650 et 1665.
Puisque la taille maximum du tableau est 200, si la base de données est sollicitée de manière intensive (quelque chose est lu chaque seconde sur le disque), la durée maximale de l'historique sera de 200 secondes. D'un autre côté, s'il ne se passe presque rien, par exemple uniquement toutes les 3 minutes, la durée de l'historique pourra atteindre 600 minutes (3*200).
Cet exemple peut être représenté dans le schéma suivant :
dataSegment1 et indexSegment
Les propriétés "dataSegment1" et "indexSegment" peuvent contenir jusqu'à quatre propriétés élémentaires (le cas échéant) :
"dataSegment1": { "diskReadBytes": {…}, "diskWriteBytes": {…},