Definición
dbStatsLa
dbStatsel comando devuelve estadísticas de almacenamiento para una base de datos determinada.
Compatibilidad
Este comando está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Importante
Este comando tiene soporte limitado en los clústeres Flex y M0. Para obtener más información, consulta Comandos no compatibles.
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
El comando tiene la siguiente sintaxis:
db.runCommand( { dbStats: 1, scale: <number>, freeStorage: 0 } )
Campos de comandos
El comando toma los siguientes campos:
Campos | Descripción |
|---|---|
1 | |
Opcional. El factor de escala para los datos de los distintos tamaños. El Si se especifica un factor de escala no entero, MongoDB utiliza la parte entera del factor especificado. Por ejemplo, si se especifica un factor de escala de A partir de la versión 4.2, la salida incluye el | |
opcional. Para devolver detalles del espacio libre asignado a las colecciones, establece Si la instancia tiene una gran cantidad de colecciones o índices, la obtención de datos sobre el uso del espacio libre puede provocar retrasos en el procesamiento. Para recopilar |
En mongosh, la función db.stats() proporciona un contenedor alrededor de dbStats.
Comportamiento
El tiempo necesario para ejecutar el comando depende del tamaño total de la base de datos. Dado que el comando debe acceder a todos los archivos de datos, puede tardar varios segundos en ejecutarse.
Precisión tras un apagado inesperado
Después de un cierre no limpio de un mongod que utiliza el motor de almacenamiento WiredTiger, las estadísticas de conteo y tamaño informadas por dbStats pueden ser inexactas.
La cantidad de deriva depende del número de operaciones de inserción, actualización o eliminación realizadas entre el último punto de control y el apagado no limpio. Los puntos de control suelen ocurrir cada 60 segundos. Sin embargo, las instancias mongod que se ejecutan con configuraciones --syncdelay no por defecto pueden tener puntos de control más o menos frecuentes.
Ejecuta validate en cada colección en el mongod para restaurar las estadísticas después de un apagado no limpio.
Después de un apagado no limpio:
Restricción del estado del set de réplicas
Para que se ejecuten en un nodo del set de réplicas, las operaciones dbStats requieren que el nodo esté en estado PRIMARY o SECONDARY. Si el nodo se encuentra en otro estado, como STARTUP2, la operación falla.
Salida
dbStats.viewsNúmero de visualizaciones en la base de datos.
dbStats.objectsNúmero de objetos (específicamente, documentos) en la base de datos de todas las colecciones.
dbStats.avgObjSizeTamaño promedio de cada documento en bytes. Este es el
dataSizedividido por el número de documentos. El argumento escalar no afecta al valoravgObjSize.
dbStats.dataSizeTamaño total de los datos no comprimidos almacenados en la base de datos. El
dataSizedisminuye cuando se remueven documentos.Para bases de datos que utilicen el motor de almacenamiento WiredTiger,
dataSizepuede ser mayor questorageSizesi la compresión está habilitada. EldataSizedisminuye cuando los documentos se hacen más pequeños.
dbStats.storageSizeSuma del espacio en disco asignado a todas las colecciones de la base de datos para el almacenamiento de documentos, incluido el espacio libre.
El valor no disminuye al eliminar o
storageSizereducir documentos. Este valor puede ser menor que para bases de datos que utilizandataSizeel motor de almacenamiento WiredTiger con la compresión habilitada.storageSizeno incluye el espacio asignado a los índices. ConsultaindexSizepara conocer el tamaño total del índice.
dbStats.freeStorageSizeSuma del espacio libre asignado a todas las colecciones de la base de datos para el almacenamiento de documentos. El espacio libre de la base de datos se asigna a la colección, pero no contiene datos.
freeStorageSizeno incluye el espacio libre asignado para los índices. ConsultaindexFreeStorageSizepara conocer el tamaño total del índice libre.Para incluir este valor en la salida de
dbStats, establece freeStorage en 1.Actualizado en la versión 5.3.0, 5.2.1 y 5.0.6
dbStats.indexSizeSuma del espacio en disco asignado a todos los índices de la base de datos, incluido el espacio libre de índices.
Nota
En colecciones con índice clusterizado con solo un índice por defecto en el campo
_ìd(sin índices secundarios), el tamaño del índice aparece como cero porque la colección no requiere un archivo de índice independiente.
dbStats.indexFreeStorageSizeSuma del espacio libre en disco asignado a todos los índices en la base de datos. El espacio de almacenamiento de base de datos gratuito se asigna al índice, pero no contiene datos.
indexFreeStorageSizeno incluye el espacio libre asignado al almacenamiento de documentos. ConsultafreeStorageSizepara conocer el tamaño total libre de almacenamiento de documentos.indexFreeStorageSizeno incluye creaciones de índices en curso.Para incluir este valor en la salida de
dbStats, establece freeStorage en 1.Actualizado en las versiones 7.0, 6.3.2, 6.0.7, 5.3.0, 5.2.1, 5.0.19 y 5.0.6
dbStats.totalSizeSuma del espacio de disco asignado a documentos e índices en todas las colecciones de la base de datos. Incluye el espacio de almacenamiento utilizado y libre. Esta suma es
storageSizedeindexSizey.
dbStats.totalFreeStorageSizeSuma del espacio de almacenamiento libre asignado tanto para documentos como para índices en todas las colecciones de la base de datos. Esta es la suma de
freeStorageSizeyindexFreeStorageSize.Para incluir este valor en la salida de
dbStats, establece freeStorage en 1.Actualizado en la versión 5.3.0, 5.2.1 y 5.0.6.
dbStats.scaleFactorscalevalor utilizado por el comando.Si se especifica un factor de escala no entero, MongoDB utiliza la parte entera del factor especificado. Por ejemplo, si se especifica un factor de escala de
1023.999, MongoDB utiliza1023como factor de escala.
Ejemplos
Los siguientes ejemplos demuestran el uso de dbStats.
Limitar datos devueltos
Para limitar los datos devueltos a un solo campo, añada el nombre del campo al comando. Este dbStats indexSize ejemplo devuelve el valor:
db.runCommand( { dbStats: 1 } ).indexSize
Ver Espacio Gratuito Asignado a Colecciones
Para ver el uso de almacenamiento gratuito, establece freeStorage en 1.
db.runCommand( { dbStats: 1, scale: 1024, freeStorage: 1 } )
Ejemplo de salida:
{ db: 'test', collections: 2, views: 0, objects: 1689, avgObjSize: 52.56542332741267, dataSize: 86.7021484375, storageSize: 100, freeStorageSize: 32, indexes: 2, indexSize: 116, indexFreeStorageSize: 36, totalSize: 216, totalFreeStorageSize: 68, scaleFactor: 1024, fsUsedSize: 60155820, fsTotalSize: 61255492, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1646085664, i: 1 }), signature: { hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0), keyId: Long("0") } }, operationTime: Timestamp({ t: 1646085664, i: 1 }) }
El campo freeStorage permite la recopilación y visualización de las métricas destacadas.
El campo escala establece los valores mostrados en kilobytes.