dbStats
Definição
dbStats
O comando
dbStats
retorna estatísticas de armazenamento para um determinado banco de dados.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Este comando tem suporte limitado em clusters M0, M2 e M5 . Para obter mais informações, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O comando tem a seguinte sintaxe:
db.runCommand( { dbStats: 1, scale: <number>, freeStorage: 0 } )
Campos de comando
O comando utiliza os seguintes campos:
Campos | Descrição |
---|---|
1 | |
Opcional. O fator de escala para os dados de vários tamanhos. O padrão Se você especificar um fator de escala não inteiro, o MongoDB utilizará a parte inteira do fator especificado. Por exemplo, se você especificar um fator de escala de A partir da versão 4.2, a saída inclui o | |
Opcional. Para retornar detalhes sobre o espaço livre alocado para collections, defina Se a instância tiver um grande número de coleções ou índices, obter dados de uso de espaço livre pode causar atrasos no processamento. Para reunir informações de |
Em mongosh
, a função db.stats()
fornece um wrapper em torno de dbStats
.
Comportamento
O tempo necessário para executar o comando depende do tamanho total do banco de dados. Como o comando deve tocar em todos os arquivos de dados, o comando pode levar alguns segundos para ser executado.
Precisão após Desligamento Inesperado
Após o desligamento impróprio de um mongod
usando o mecanismo de armazenamento Wired Tiger, as estatísticas de contagem e tamanho informadas pelo dbStats
podem ser imprecisas.
A quantidade de desvio depende do número de operações de inserção, atualização ou exclusão executadas entre o último ponto de verificação e o desligamento não limpo. Os pontos de verificação geralmente ocorrem a cada 60 segundos. No entanto, mongod
instâncias executadas com configurações de --syncdelay
não padrão podem ter pontos de verificação mais ou menos frequentes.
Execute validate
em cada collection no mongod
para restaurar as estatísticas depois de um desligamento impróprio.
Após um desligamento impróprio:
Restrição de estado do membro do conjunto de réplica
Para executar em um membro do conjunto de réplicas, as operações dedbStats
exigem que o membro esteja no estado PRIMARY
ou SECONDARY
. Se o membro estiver em outro estado, como STARTUP2
, ocorre um erro na operação.
Saída
dbStats.views
Número de visualizações no banco de dados.
dbStats.objects
Número de objetos (especificamente, documentos) no banco de dados em todas as collections.
dbStats.avgObjSize
Tamanho médio de cada documento em bytes. Este é o
dataSize
dividido pelo número de documentos. O argumento de escala não afeta o valor deavgObjSize
.
dbStats.dataSize
Tamanho total dos dados não comprimidos mantidos no banco de dados. O
dataSize
diminui quando você remove documentos.Para bancos de dados utilizando o mecanismo de armazenamento WiredTiger, o
dataSize
pode ser maior questorageSize
se a compressão estiver habilitada. OdataSize
diminui quando os documentos diminuem.
dbStats.storageSize
Soma do espaço em disco alocado a todas as collections no banco de dados para armazenamento de documentos, incluindo o espaço livre.
O
storageSize
não diminui à medida que você remove ou reduz documentos. Este valor pode ser menor quedataSize
para bancos de dados que usam o storage engine WiredTiger com compactação habilitada.storageSize
não inclui espaço alocado para índices. ConsulteindexSize
para o tamanho total do índice.
dbStats.freeStorageSize
Soma do espaço livre alocado a todas as collections no banco de dados para armazenamento de documentos. O espaço de armazenamento do banco de dados livre é alocado para a collection, mas não contém dados.
freeStorageSize
não inclui espaço livre alocado aos índices. Consulte a seçãoindexFreeStorageSize
para obter o tamanho total do índice livre.Para incluir esse valor na saída
dbStats
, defina freeStorage como 1.Atualizado na versão 5.3.0, 5.2.1 e 5.0.6
dbStats.indexSize
Soma do espaço em disco alocado a todos os índices no banco de dados, incluindo espaço de índice livre.
dbStats.indexFreeStorageSize
Soma do espaço livre em disco alocado para todos os índices no banco de dados. O espaço de armazenamento gratuito do banco de dados é alocado para o índice, mas não contém dados.
indexFreeStorageSize
não inclui o espaço livre alocado para o armazenamento de documentos. ConsultefreeStorageSize
para saber o tamanho total do armazenamento livre de documentos.indexFreeStorageSize
não inclui compilações de índice em andamento.Para incluir esse valor na saída
dbStats
, defina freeStorage como 1.Atualizado na versão 7.0, 6.3.2, 6.0.7, 5.3.0, 5.2.1, 5.0.19 e 5.0.6
dbStats.totalSize
Soma do espaço em disco alocado para documentos e índices em todas as coleções no banco de dados. Inclui espaço de armazenamento usado e gratuito. Esta é a soma de
storageSize
eindexSize
.
dbStats.totalFreeStorageSize
Soma do espaço de armazenamento gratuito alocado para documentos e índices em todas as coleções no banco de dados. Esta é a soma de
freeStorageSize
eindexFreeStorageSize
.Para incluir esse valor na saída
dbStats
, defina freeStorage como 1.Atualizado na versão 5,3,0, 5.2.1 e 5.0.6.
dbStats.scaleFactor
scale
valor usado pelo comando.Se você especificou um fator de escala não inteiro, o MongoDB utilizará a parte inteira do fator especificado. Por exemplo, se você especificar um fator de escala de
1023.999
, MongoDB utilizará1023
como o fator de escala.
Exemplos
Os exemplos a seguir demonstram o uso de dbStats
.
Limite de dados retornados
Para limitar os dados retornados a um único campo, anexe o nome do campo ao comando dbStats
. Este exemplo retorna o valor indexSize
:
db.runCommand( { dbStats: 1 } ).indexSize
Ver espaço livre alocado para collections
Para ver o uso de armazenamento gratuito, configure freeStorage para 1.
db.runCommand( { dbStats: 1, scale: 1024, freeStorage: 1 } )
Saída de exemplo:
{ 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 }) }
O campo freeStorage habilita a coleção e a exibição das métricas destacadas.
O campo escala define os valores exibidos para kilobytes.