Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso del registro de consultas lentas de Amazon Neptune
La identificación, depuración y optimización de una consulta de ejecución lenta puede resultar difícil. Cuando el registro de consultas lentas de Neptune está habilitado, los atributos de todas las consultas de larga duración se registran automáticamente para facilitar este proceso.
nota
El registro de consultas lentas se introdujo en la versión 1.2.1.0 del motor de Neptune.
Para habilitar el registro de consultas lentas, utilice el parámetro de clúster de base de datos neptune_enable_slow_query_log. Este parámetro está establecido en disabled
de forma predeterminada. Al establecerlo en info
o debug
, se habilita el registro de consultas lentas. La configuración de info
registra algunos atributos útiles de cada consulta de ejecución lenta, mientras que la configuración de debug
registra todos los atributos disponibles.
Para establecer el umbral de lo que se considera una consulta de ejecución lenta, utilice el parámetro de clúster de base de datos neptune_slow_query_log_threshold para especificar el número de milisegundos tras los cuales una consulta en ejecución se considera lenta y se registra cuando el registro de consultas lentas está activado. El valor predeterminado es de 5000 milisegundos (5 segundos).
Puede configurar estos parámetros del clúster de base de datos en la función de odifyDBCluster ParameterGroup administración M AWS Management Console, o mediante el AWS CLI comando modify-db-cluster-parameter-group.
nota
Los parámetros de registro de consultas lentas son dinámicos, lo que significa que cambiar sus valores no requiere ni provoca el reinicio del clúster de base de datos.
Para ver los registros de consultas lentas en el AWS Management Console
Puede ver y descargar los registros de consultas lentas en el, de la AWS Management Console siguiente manera:
En la página Instancias, elija la instancia de base de datos y, a continuación, desplácese hasta la sección Registros. A continuación, puede seleccionar un archivo de registro allí y luego elegir Descargar para descargarlo.
Los archivos generados por el registro de consultas lentas de Neptune
Los archivos de registro generados por el registro de consultas lentas en Neptune tienen las siguientes características:
Los archivos están codificados como UTF -8.
Las consultas y sus atributos se registran en JSON forma.
Los atributos nulos y vacíos no se registran, excepto los datos
queryTime
.Los registros abarcan varios archivos, cuyo número varía en función del tamaño de la instancia.
Las entradas del registro no están en orden secuencial. Puede usar sus valores
timestamp
para ordenarlas.Para ver los eventos más recientes, es posible que sea necesario revisar todos los archivos de consultas lentas.
Los archivos de registro se rotan cuando llegan a 100 MiB combinados. Este límite no se puede configurar.
Atributos de consultas registrados en el modo info
Los siguientes atributos se registran para las consultas lentas cuando el parámetro del clúster de base de datos neptune_enable_slow_query_log
se establece en info
:
Grupo | Atributo | Descripción |
---|---|---|
requestResponseMetadata |
|
Identificador de solicitud de la consulta. |
|
Tipo de solicitud, como HTTP o WebSocket. |
|
|
Código de estado de respuesta de consulta, como 200. |
|
|
Clase de excepción del error devuelto tras la ejecución de la consulta. |
|
queryStats |
|
Cadena de consulta. |
|
Huella digital de la consulta. |
|
|
Lenguaje de consulta, como Gremlin, SPARQL o. openCypher |
|
memoryStats |
|
Permisos asignados a la consulta. |
|
Memoria aproximada utilizada por la consulta durante la ejecución. |
|
queryTime |
|
Hora de inicio de la consulta ()UTC. |
|
Tiempo total de la consulta en milisegundos. |
|
|
Tiempo de análisis de la consulta en milisegundos. |
|
|
Tiempo de espera de la openCypher cola Query SPARQL Gremlin//, en milisegundos |
|
|
Tiempo de ejecución de la consulta en milisegundos. |
|
|
Tiempo de serialización de la consulta en milisegundos. |
|
statementCounters |
|
Número de instrucciones escaneadas. |
|
Número de instrucciones escritas. |
|
|
Número de instrucciones eliminadas. |
|
transactionCounters |
|
Número de transacciones confirmadas. |
|
Número de transacciones revertidas. |
|
vertexCounters |
|
Número de vértices añadidos. |
|
Número de vértices eliminados. |
|
|
Número de propiedades de vértices añadidas. |
|
|
Número de propiedades de vértices eliminadas. |
|
edgeCounters |
|
Número de bordes añadidos. |
|
Número de bordes eliminados. |
|
|
Número de propiedades de borde añadidas. |
|
|
Número de propiedades de borde eliminadas. |
|
resultCache |
|
Número de aciertos de la caché de resultados. |
|
Número de errores de la caché de resultados. |
|
|
Número de colocaciones en la caché de resultados. |
|
concurrentExecution |
|
Se aceptan consultas paralelas con la ejecución de la consulta actual al inicio. |
|
Consultas paralelas que se ejecutan con la ejecución de la consulta actual al inicio. |
|
|
Se aceptan consultas paralelas con la ejecución de la consulta actual al final. |
|
|
Consultas paralelas que se ejecutan con la ejecución de la consulta actual al final. |
|
queryBatch |
|
Tamaño del lote durante el procesamiento de consultas. |
|
Tamaño del lote durante la serialización de consultas. |
Atributos de consultas registrados en el modo debug
Cuando el parámetro del clúster de base de datos neptune_enable_slow_query_log
se ha establecido en debug
, se registran los siguientes atributos del contador de almacenamiento además de los atributos que se registran en el modo info
:
Atributo | Descripción |
---|---|
|
Las instrucciones se escanean en todos los índices. |
|
Declaraciones escaneadas en el índice. SPOG |
|
Declaraciones escaneadas en POGS el índice. |
|
Declaraciones escaneadas en GPSO el índice. |
|
Declaraciones escaneadas en OSGP el índice. |
|
Instrucciones escaneadas juntas en fragmentos. |
|
Las instrucciones que quedan en el posfiltrado después de escanearlas. |
|
Se han escaneado distintas instrucciones. |
|
Las instrucciones leídas en el posfiltrado después de escanearlas en todos los índices. |
|
Las declaraciones leídas después de escanearlas se filtran en el SPOG índice. |
|
Las declaraciones leídas después de escanearlas se filtran después del filtrado en POGS el índice. |
|
Las declaraciones leídas después de escanearlas se filtran después del filtrado en GPSO el índice. |
|
Las declaraciones leídas después de escanearlas se filtran después del filtrado en OSGP el índice. |
|
Número de búsquedas de rutas de acceso. |
|
Número de búsquedas de rutas de acceso clave totalmente delimitadas. |
|
Número de rutas de acceso buscadas por prefijo. |
|
Número de búsquedas que tenían 1 o más registros como salida. |
|
Número de búsquedas que no tenían registros como salida. |
|
Total de registros encontrados en todas las búsquedas. |
|
Número de instrucciones insertadas en todos los índices. |
|
Número de instrucciones actualizadas en todos los índices. |
|
Número de instrucciones eliminadas en todos los índices. |
|
Número de predicados. |
|
Número de lecturas del diccionario desde el valor hasta la tabla de identificadores. |
|
Número de lecturas del diccionario de la tabla de identificadores de valores. |
|
Número de escrituras del diccionario en el valor de la tabla de identificadores. |
|
Número de escrituras del diccionario en el identificador de la tabla de valores. |
|
Número de recuentos de rangos en todos los índices. |
|
Número de interbloqueos en la consulta. |
|
Número de inserciones de cardinalidad única realizadas. |
|
Número de instrucciones eliminadas durante la inserción de cardinalidad única. |
Ejemplo de registro de depuración para una consulta lenta
La siguiente consulta de Gremlin podría tardar más en ejecutarse que el umbral establecido para las consultas lentas:
gremlin=g.V().has('code','AUS').repeat(out().simplePath()).until(has('code','AGR')).path().by('code').limit(20).fold()
En ese caso, si el registro de consultas lentas estuviera habilitado en el modo de depuración, se registrarían los siguientes atributos para la consulta, de una forma como esta:
{ "requestResponseMetadata": { "requestId": "5311e493-0e98-457e-9131-d250a2ce1e12", "requestType": "HTTP_GET", "responseStatusCode": 200 }, "queryStats": { "query": "gremlin=g.V().has('code','AUS').repeat(out().simplePath()).until(has('code','AGR')).path().by('code').limit(20).fold()", "queryFingerprint": "g.V().has(string0,string1).repeat(__.out().simplePath()).until(__.has(string0,string2)).path().by(string0).limit(long0).fold()", "queryLanguage": "Gremlin" }, "memoryStats": { "allocatedPermits": 20, "approximateUsedMemoryBytes": 14838 }, "queryTimeStats": { "startTime": "23/02/2023 11:42:52.657", "overallRunTimeMs": 2249, "executionTimeMs": 2229, "serializationTimeMs": 13 }, "statementCounters": { "read": 69979 }, "transactionCounters": { "committed": 1 }, "concurrentExecutionStats": { "acceptedQueryCountAtStart": 1 }, "queryBatchStats": { "queryProcessingBatchSize": 1000, "querySerialisationBatchSize": 1000 }, "storageCounters": { "statementsScannedInAllIndexes": 69979, "statementsScannedSPOGIndex": 44936, "statementsScannedPOGSIndex": 4, "statementsScannedGPSOIndex": 25039, "statementsReadInAllIndexes": 68566, "statementsReadSPOGIndex": 43544, "statementsReadPOGSIndex": 2, "statementsReadGPSOIndex": 25020, "accessPathSearches": 27, "fullyBoundedAccessPathSearches": 27, "dictionaryReadsFromValueToIdTable": 10, "dictionaryReadsFromIdToValueTable": 17, "rangeCountsInAllIndexes": 4 } }