Docs Menu
Docs Home
/ /

configureQueryAnalyzer (comando de base de datos)

configureQueryAnalyzer

Nuevo en la versión 7.0.

Configura el muestreo de consultas para una colección en un conjunto de réplicas o un clúster fragmentado. Las consultas muestreadas proporcionan información a analyzeShardKey para calcular métricas sobre la distribución de lectura y escritura de una clave de fragmento.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte 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.

El comando tiene la siguiente sintaxis:

db.adminCommand(
{
configureQueryAnalyzer: <string>,
mode: <string>,
samplesPerSecond: <double>
}
)

configureQueryAnalyzer tiene los siguientes campos:

Campo
Tipo
Necesidad
Descripción

configureQueryAnalyzer

string

Requerido

espacio de nombres de la colección que se configurará para el muestreo de consultas.

mode

string

Requerido

Modo en el que se ejecuta el analizador de consultas. Debe establecerse en "full" o "off".

samplesPerSecond

doble

Opcional

Número de muestras por segundo.

  • Cuando mode se establece en "full", samplesPerSecond debe establecerse entre 0 y 50.

  • Cuando mode se establece en "off", el servidor ignora samplesPerSecond.

Para obtener más detalles, consulte el límite superior de samplesPerSecond.

configureQueryAnalyzer requiere uno de los siguientes roles:

  • dbAdmin Rol contra la base de datos que contiene la colección que se está analizando

  • clusterManager papel contra el cluster

Considere el siguiente comportamiento al ejecutar configureQueryAnalyzer:

El muestreo de consultas se desactiva automáticamente al eliminar o cambiar el nombre de la colección. Si desea muestrear consultas después de volver a crear o cambiar el nombre de una colección, debe reconfigurar el muestreo de consultas.

El límite superior para samplesPerSecond es 50. Una tasa más alta hace que las consultas muestreadas ocupen 10GB de espacio en disco en menos de cuatro días.

Esta tabla muestra el uso estimado del disco para cada combinación de frecuencia de muestreo y duración:

Tamaño promedio de consulta muestreada (kB)
samplesPerSecond
Duración del muestreo (días)
Número de consultas muestreadas
Tamaño total de las consultas muestreadas (GB)

0.5

0.1

7

60,480

0.03024

0.5

10

7

6,048,000

3.024

0.5

50

7

30,240,000

15.12

1000

50

1

4,320,000

4320

16,000

50

1

4,320,000

69,120

Las consultas muestreadas se almacenan en una colección interna con un índice TTL expireAfterSeconds de. Para configurar,expireAfterSeconds utilice el queryAnalysisSampleExpirationSecs parámetro de servidor. Las consultas muestreadas se eliminan automáticamente después queryAnalysisSampleExpirationSecs de.

Para supervisar el proceso de muestreo de query, utiliza la etapa $currentOp. Para un ejemplo, consulte queries de muestra.

Para ver consultas muestreadas de todas las colecciones o de una colección específica, utilice la $listSampledQueries etapa de agregación.

Para ver el recuento de cada tipo de comando capturado por el analizador de consultas, utilice:

db.getSiblingDB("admin").aggregate( [
{ "$listSampledQueries": { ns: "<db.collectionName>" } },
{
"$group": {
"_id": {
ns: "$ns",
cmdName: "$cmdName"
},
count: { "$sum": 1 }
}
},
{
"$project": {
"_id.ns": 1,
"_id.cmdName": 1,
"count": 1 // Explicitly include fields to output
}
},
{ "$sort": { "_id.ns": 1 } }
] );
[{ count: 10, cmdName: 'aggregate' },
{ count: 51, cmdName: 'delete' },
{ count: 25, cmdName: 'distinct' },
{ count: 100, cmdName: 'find' },
{ count: 24, cmdName: 'findAndModify' },
{ count: 7, cmdName: 'update' }]

Cuando tenga suficientes muestras, puede desactivar el analizador de consultas.

  • No se puede ejecutar configureQueryAnalyzer en clústeres flexibles de Atlas.

  • No se puede ejecutar configureQueryAnalyzer en implementaciones independientes.

  • No se puede ejecutar configureQueryAnalyzer directamente en un --shardsvr conjunto de réplicas. Al ejecutarse en un clúster fragmentado, configureQueryAnalyzer debe ejecutarse en mongos un.

  • No se puede ejecutar configureQueryAnalyzer contra colecciones de series de tiempo.

  • No se puede ejecutar configureQueryAnalyzer en colecciones con cifrado consultable.

configureQueryAnalyzer devuelve un documento que contiene campos que describen la configuración anterior, si existe, y campos que describen la nueva configuración.

  • oldConfiguration, si existe, contiene campos que describen la configuración anterior.

  • newConfiguration Contiene campos que describen la nueva configuración.

configureQueryAnalyzer devuelve un documento similar al siguiente:

{
ok: 1,
oldConfiguration: {
mode: ...,
samplesPerSecond: ...
}
newConfiguration: {
...
}
}

Para habilitar el muestreo de consultas en la colección test.students a una velocidad de cinco muestras por segundo, utilice el siguiente comando:

db.adminCommand(
{
configureQueryAnalyzer: "test.students",
mode: "full",
samplesPerSecond: 5
}
)

Para deshabilitar el muestreo de consultas en la colección test.students, utilice el siguiente comando:

db.adminCommand(
{
configureQueryAnalyzer: "test.students",
mode: "off"
}
)

Volver

configurarCollectionBalancing

En esta página