

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usar o registro em log de consultas lentas do Amazon Neptune
<a name="slow-query-logs"></a>

Identificar, depurar e otimizar uma consulta de execução lenta pode ser difícil. Quando o registro em log de consultas lentas do Neptune está habilitado, os atributos de todas as consultas de longa duração são registrados automaticamente para facilitar esse processo.

**nota**  
O registro em log de consultas lentas foi introduzido na [versão 1.2.1.0 do mecanismo do Neptune](engine-releases-1.2.1.0.md).

Você habilita o registro em log de consultas lentas usando o parâmetro de cluster de banco de dados [neptune\$1enable\$1slow\$1query\$1log](parameters.md#parameters-db-cluster-parameters-neptune_enable_slow_query_log). Esse parâmetro é definido como `disabled` por padrão. Configurá-lo como `info` ou `debug` habilita o registro em log de consultas lentas. A configuração `info` registra alguns atributos úteis de cada consulta de execução lenta, enquanto a configuração `debug` registra todos os atributos disponíveis.

Para definir o limite para o que uma consulta seja considerada de execução lenta, use o parâmetro de cluster de banco de dados [neptune\$1slow\$1query\$1log\$1threshold](parameters.md#parameters-db-cluster-parameters-neptune_slow_query_log_threshold) para especificar o número de milissegundos após os quais uma consulta em execução é considerada lenta e é registrada quando o registro em log de consultas lentas está habilitado. O valor padrão é cinco mil milissegundos (cinco segundos).

Você pode definir esses parâmetros do cluster de banco de dados [no Console de gerenciamento da AWS](parameter-groups.md#parameters-editgroup), ou usando o AWS CLI comando [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/neptune/modify-db-cluster-parameter-group.html) ou a função de DBCluster ParameterGroup gerenciamento [Modify](api-parameters.md#ModifyDBClusterParameterGroup).

**nota**  
Os parâmetros de registro em log de consultas lentas são dinâmicos, o que significa que a alteração dos valores não exige nem causa a reinicialização do cluster de banco de dados.

## Para visualizar registros de consultas lentas no Console de gerenciamento da AWS
<a name="slow-query-logs-console"></a>

Você pode visualizar e baixar registros de consulta lenta no Console de gerenciamento da AWS, da seguinte forma:

Na página **Instâncias**, escolha a instância do banco de dados e, depois, vá até a seção **Logs**. Depois, você pode selecionar um arquivo de log e escolher **Baixar** para baixá-lo.

## Os arquivos gerados pelo registro em log de consultas lentas do Neptune
<a name="slow-query-log-files"></a>

Os arquivos de log gerados pelo registro em log de consultas lentas no Neptune têm as seguintes características:
+ Os arquivos são codificados como UTF-8.
+ As consultas e seus atributos são registrados no formato JSON.
+ Atributos nulos e vazios não são registrados, exceto dados `queryTime`.
+ Os logs abrangem vários arquivos, cujo número varia de acordo com o tamanho da instância.
+ As entradas do log não estão em ordem sequencial. Você pode usar os valores `timestamp` para ordená-las.
+ Para ver os eventos mais recentes, talvez seja preciso analisar todos os arquivos de log de consultas lentas.
+ Os arquivos de log são trocados quando atingem 100 MiB em conjunto. Esse limite não é configurável.

## Atributos de consulta registrados no modo `info`
<a name="slow-query-log-info-attributes"></a>

Os seguintes atributos são registrados para consultas lentas quando o parâmetro do cluster de banco de dados `neptune_enable_slow_query_log` é definido como `info`:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/neptune/latest/userguide/slow-query-logs.html)

## Atributos de consulta registrados no modo `debug`
<a name="slow-query-log-debug-attributes"></a>

Quando o parâmetro do cluster de banco de dados `neptune_enable_slow_query_log` é definido como `debug`, os seguintes atributos do contador de armazenamento são registrados, além dos atributos que são registrados como no modo `info`:


| Atributo | Description | 
| --- | --- | 
| `statementsScannedInAllIndexes` | Declarações verificadas em todos os índices. | 
| `statementsScannedSPOGIndex` | Declarações verificadas no índice SPOG. | 
| `statementsScannedPOGSIndex` | Declarações verificadas no índice POGS. | 
| `statementsScannedGPSOIndex` | Declarações verificadas no índice GPSO. | 
| `statementsScannedOSGPIndex` | Declarações verificadas no índice OSGP. | 
| `statementsScannedInChunk` | Declarações verificadas juntas no bloco. | 
| `postFilteredStatementScans` | Declarações deixadas depois da pós-filtragem após as verificações. | 
| `distinctStatementScans` | Declarações distintas verificadas. | 
| `statementsReadInAllIndexes` | Declarações lidas depois da pós-filtragem em todos os índices. | 
| `statementsReadSPOGIndex` | Declarações lidas depois da pós-filtragem no índice SPOG. | 
| `statementsReadPOGSIndex` | Declarações lidas depois da pós-filtragem no índice POGS. | 
| `statementsReadGPSOIndex` | Declarações lidas depois da pós-filtragem no índice GPSO. | 
| `statementsReadOSGPIndex` | Declarações lidas depois da pós-filtragem no índice OSGP. | 
| `accessPathSearches` | Número de pesquisas de caminhos de acesso. | 
| `fullyBoundedAccessPathSearches` | Número de pesquisas de caminhos de acesso à chave totalmente limitada. | 
| `accessPathSearchedByPrefix` | Número do caminho de acesso pesquisado por prefixo. | 
| `searchesWhereRecordsWereFound` | Número de pesquisas que tiveram um ou mais registros como saída. | 
| `searchesWhereRecordsWereNotFound` | Número de pesquisas que não tiveram registros como saída. | 
| `totalRecordsFoundInSearches` | Total de registros encontrados em todas as pesquisas. | 
| `statementsInsertedInAllIndexes` | Número de declarações inseridas em todos os índices. | 
| `statementsUpdatedInAllIndexes` | Número de declarações atualizadas em todos os índices. | 
| `statementsDeletedInAllIndexes` | Número de declarações excluídas em todos os índices. | 
| `predicateCount` | Número de predicados. | 
| `dictionaryReadsFromValueToIdTable` | Número de leituras do dicionário do valor até a tabela de ID. | 
| `dictionaryReadsFromIdToValueTable` | Número de leituras do dicionário do ID da tabela de valores. | 
| `dictionaryWritesToValueToIdTable` | Número de gravações do dicionário no valor na tabela de ID. | 
| `dictionaryWritesToIdToValueTable` | Número de gravações do dicionário no ID na tabela de valores. | 
| `rangeCountsInAllIndexes` | Número de contagens de intervalos em todos os índices. | 
| `deadlockCount` | Número de deadlocks na consulta. | 
| `singleCardinalityInserts` | Número de inserções de cardinalidade única realizadas. | 
| `singleCardinalityInsertDeletions` | Número de declarações excluídas durante a inserção de cardinalidade única. | 
| `sharedLocksWaitTimeMillis` | Número de milissegundos gastos esperando por bloqueios compartilhados. | 
| `exclusiveLocksWaitTimeMillis` | Número de milissegundos gastos esperando por bloqueios exclusivos. | 

## Exemplo de registro em log de depuração para uma consulta lenta
<a name="slow-query-log-debug-output-sample"></a>

A seguinte consulta do Gremlin pode levar mais tempo para ser executada do que o limite definido para consultas lentas:

```
gremlin=g.V().has('code','AUS').repeat(out().simplePath()).until(has('code','AGR')).path().by('code').limit(20).fold()
```

Então, se o registro em log de consultas lentas estivesse habilitado no modo de depuração, os seguintes atributos seriam registrados para a consulta, da seguinte forma:

```
{
  "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,
    "sharedLocksWaitTimeMillis": 0,
    "exclusiveLocksWaitTimeMillis": 0
  }
}
```