Definición
dbStatsEl comando
dbStatsdevuelve 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 administrado 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 un gran número de colecciones o índices, la obtención de datos de uso de espacio libre puede provocar retrasos en el procesamiento. Para recopilar información |
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. Debido a que el comando debe acceder a todos los archivos de datos, el comando puede tardar varios segundos en ejecutarse.
Precisión tras un apagado inesperado
Después de un apagado incorrecto de un mongod que utiliza el motor de almacenamiento Wired Tiger, las estadísticas de recuento 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:
validateactualiza la estadística de recuento en la salidacollStatscon el último valor.
Restricción del estado del set de réplicas
Para ejecutarse en un miembro del conjunto de réplicas, las operacionesdbStats requieren que el miembro esté en estado PRIMARY oSECONDARY. Si el miembro está en otro estado, como STARTUP2, la operación genera un error.
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 valor es
dataSizedividido por el número de documentos. El argumento scale no afecta el valoravgObjSize.
dbStats.dataSizeTamaño total de los datos sin comprimir almacenados en la base de datos. El valor de
dataSizedisminuye al eliminar 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 en la base de datos para el almacenamiento de documentos, incluido el espacio libre.
El valor
storageSizeno disminuye al eliminar o reducir el tamaño de los documentos. Este valor puede ser menor quedataSizepara bases de datos que utilizan el motor de almacenamiento WiredTiger con la compresión habilitada.storageSizeno incluye el espacio asignado a los índices. ConsulteindexSizepara conocer el tamaño total del índice.
dbStats.freeStorageSizeSuma del espacio libre asignado a todas las colecciones en la base de datos para el almacenamiento de documentos. Se asigna espacio de almacenamiento gratuito en la base de datos a la colección, pero no contiene datos.
freeStorageSizeno incluye el espacio libre asignado a los índices. ConsulteindexFreeStorageSizepara conocer el tamaño total del índice libre.Para incluir este valor en la salida
dbStats, establezca 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. ConsultefreeStorageSizepara conocer el tamaño total del espacio libre de almacenamiento de documentos.indexFreeStorageSizeno incluye creaciones de índices en curso.Para incluir este valor en la salida
dbStats, establezca freeStorage en 1.Actualizado en la versión 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 en disco asignado tanto para documentos como para índices en todas las colecciones de la base de datos. Incluye el espacio de almacenamiento utilizado y libre. Esta es la suma de
storageSizeyindexSize.
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
dbStats, establezca 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, agregue el nombre del campo al comando dbStats. Este ejemplo devuelve el valor indexSize:
db.runCommand( { dbStats: 1 } ).indexSize
Ver Espacio Gratuito Asignado a Colecciones
Para ver el uso del almacenamiento gratuito, establezca 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.