Definición
dbStatsEl comando devuelve estadísticas de almacenamiento para una base de datos
dbStatsdeterminada.
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 obtener detalles sobre el espacio libre asignado a las colecciones, establezca Si la instancia tiene una gran cantidad de colecciones o índices, obtener datos de uso del espacio libre puede causar retrasos en el procesamiento. Para recopilar información de sin detalles de espacio libre, |
mongoshEn, la función proporciona un contenedor db.stats() alrededor dbStats de.
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 vistas en la base de datos.
dbStats.objectsNúmero de objetos (específicamente, documentos) en la base de datos en todas las colecciones.
dbStats.avgObjSizeTamaño promedio de cada documento en bytes. Es el
dataSizeresultado de dividir entre el número de documentos. El argumento de escala no afecta elavgObjSizevalor.
dbStats.dataSizeTamaño total de los datos sin comprimir almacenados en la base de datos. El valor disminuye al
dataSizeeliminar 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 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. ConsulteindexSizepara 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 a los índices. ConsulteindexFreeStorageSizepara conocer el tamaño total libre del índice.Para incluir este valor en la salida,
dbStatsestablezca freeStorage 1en.Actualizado en la versión 5.3.0, 5.2.1 y 5.0.6
dbStats.indexSizeSuma del espacio asignado a todos los índices de la base de datos, incluido el espacio de índice libre.
dbStats.indexFreeStorageSizeSuma del espacio libre asignado a todos los índices de la base de datos. El espacio de almacenamiento libre de la base de datos se asigna al índice, pero no contiene datos.
indexFreeStorageSizeno incluye el espacio libre asignado al almacenamiento de documentos. Consulte parafreeStorageSizeconocer el tamaño total de almacenamiento libre de documentos.indexFreeStorageSizeNo incluye compilaciones de índices en curso.Para incluir este valor en la salida,
dbStatsestablezca freeStorage 1en.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 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 a documentos e índices en todas las colecciones de la base de datos. Esta suma es
freeStorageSizeindexFreeStorageSizey.Para incluir este valor en la salida,
dbStatsestablezca freeStorage 1en.Actualizado en la versión 5.3.0, 5.2.1 y 5.0.6.
dbStats.scaleFactorscalevalor utilizado por el comando.Si especificó un factor de escala no entero, MongoDB usa la parte entera del factor especificado. Por ejemplo, si especifica un factor de escala de
1023.999, MongoDB usa1023como factor de escala.
Ejemplos
Los siguientes ejemplos demuestran el uso dbStats de.
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 el espacio libre asignado a las 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 de escala establece los valores mostrados en kilobytes.