

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo della registrazione di log delle query lente di Amazon Neptune
<a name="slow-query-logs"></a>

Identificare, eseguire il debug e ottimizzare una query a esecuzione lenta può essere difficile. Quando è abilitata la registrazione dei log delle query lente di Neptune, gli attributi di tutte le query a esecuzione prolungata vengono registrati automaticamente per semplificare questo processo.

**Nota**  
La registrazione di log delle query lente è stata introdotta nel [rilascio 1.2.1.0 del motore](engine-releases-1.2.1.0.md) Neptune.

È possibile abilitare la registrazione di log delle query lente utilizzando il parametro del cluster database [neptune\$1enable\$1slow\$1query\$1log](parameters.md#parameters-db-cluster-parameters-neptune_enable_slow_query_log). Questo parametro è impostato su `disabled` per impostazione predefinita. L'impostazione su `info` o `debug` abilita la registrazione di log delle query lente. L'impostazione `info` registra alcuni attributi utili di ogni query a esecuzione lenta, mentre l'impostazione `debug` registra tutti gli attributi disponibili.

Per impostare la soglia per quella che è considerata una query a esecuzione lenta, utilizzare il parametro del cluster database [neptune\$1slow\$1query\$1log\$1threshold](parameters.md#parameters-db-cluster-parameters-neptune_slow_query_log_threshold) per specificare il numero di millisecondi dopo i quali una query in esecuzione viene considerata lenta e viene registrata quando è abilitata la registrazione di log delle query lente. Il valore predefinito è 5000 millisecondi (5 secondi).

Puoi impostare questi parametri del cluster DB [nella o utilizzando il Console di gestione AWS](parameter-groups.md#parameters-editgroup) AWS CLI comando [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/neptune/modify-db-cluster-parameter-group.html) o la funzione di DBCluster ParameterGroup gestione [Modify](api-parameters.md#ModifyDBClusterParameterGroup).

**Nota**  
I parametri di registrazione di log delle query lente sono dinamici, il che significa che la modifica dei loro valori non richiede né causa il riavvio del cluster database.

## Per visualizzare i log delle interrogazioni lente in Console di gestione AWS
<a name="slow-query-logs-console"></a>

È possibile visualizzare e scaricare i log delle query lente in, come segue: Console di gestione AWS

Nella pagina **Istanze**, scegli l'istanza database, quindi scorri la pagina fino alla sezione **Log**. È quindi possibile selezionare un file di log e quindi scegliere **Scarica** per scaricarlo.

## File generati dalla registrazione di log delle query lente in Neptune
<a name="slow-query-log-files"></a>

I file di log generati dalla registrazione di log delle query lente in Neptune hanno le seguenti caratteristiche:
+ I file sono codificati come UTF-8.
+ Le query e i relativi attributi vengono registrati in formato JSON.
+ Gli attributi nulli e vuoti non vengono registrati, ad eccezione dei dati `queryTime`.
+ I log si estendono su più file, il cui numero varia a seconda della dimensione dell'istanza.
+ Le voci dei log non sono in ordine sequenziale. Per ordinarle, puoi utilizzare il valore `timestamp`.
+ Per visualizzare gli ultimi eventi, potrebbe essere necessario esaminare tutti i file di log delle query lente.
+ I file di log vengono ruotati quando raggiungono la dimensione di 100 MiB in forma aggregata. Questo limite non è configurabile.

## Attributi di query registrati in modalità `info`
<a name="slow-query-log-info-attributes"></a>

I seguenti attributi vengono registrati per le query lente quando il parametro del cluster database `neptune_enable_slow_query_log` è stato impostato su `info`:

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

## Attributi di query registrati in modalità `debug`
<a name="slow-query-log-debug-attributes"></a>

Quando il parametro del cluster database `neptune_enable_slow_query_log` è impostato su `debug`, vengono registrati i seguenti attributi del contatore di archiviazione oltre agli attributi registrati in modalità `info`:


| Attributo | Description | 
| --- | --- | 
| `statementsScannedInAllIndexes` | Istruzioni analizzate in tutti gli indici. | 
| `statementsScannedSPOGIndex` | Istruzioni analizzate nell'indice SPOG. | 
| `statementsScannedPOGSIndex` | Istruzioni analizzate nell'indice POGS. | 
| `statementsScannedGPSOIndex` | Istruzioni analizzate nell'indice GPSO. | 
| `statementsScannedOSGPIndex` | Istruzioni analizzate nell'indice OSGP. | 
| `statementsScannedInChunk` | Istruzioni analizzate insieme in blocchi. | 
| `postFilteredStatementScans` | Istruzioni rimaste dopo il post-filtraggio dopo le analisi. | 
| `distinctStatementScans` | Istruzioni distinte analizzate. | 
| `statementsReadInAllIndexes` | Istruzioni lette dopo l'analisi post-filtraggio in tutti gli indici. | 
| `statementsReadSPOGIndex` | Istruzioni lette dopo l'analisi post-filtraggio nell'indice SPOG. | 
| `statementsReadPOGSIndex` | Istruzioni lette dopo l'analisi post-filtraggio nell'indice POGS. | 
| `statementsReadGPSOIndex` | Istruzioni lette dopo l'analisi post-filtraggio nell'indice GPSO. | 
| `statementsReadOSGPIndex` | Istruzioni lette dopo l'analisi post-filtraggio nell'indice OSGP. | 
| `accessPathSearches` | Numero di ricerche del percorso di accesso. | 
| `fullyBoundedAccessPathSearches` | Numero di ricerche del percorso di accesso con chiavi completamente limitate. | 
| `accessPathSearchedByPrefix` | Numero di ricerche del percorso di accesso per prefisso. | 
| `searchesWhereRecordsWereFound` | Numero di ricerche con 1 o più record come output. | 
| `searchesWhereRecordsWereNotFound` | Numero di ricerche senza record come output. | 
| `totalRecordsFoundInSearches` | Record totali trovati da tutte le ricerche. | 
| `statementsInsertedInAllIndexes` | Numero di istruzioni inserite in tutti gli indici. | 
| `statementsUpdatedInAllIndexes` | Numero di istruzioni aggiornate in tutti gli indici. | 
| `statementsDeletedInAllIndexes` | Numero di istruzioni eliminate in tutti gli indici. | 
| `predicateCount` | Numero di predicati. | 
| `dictionaryReadsFromValueToIdTable` | Numero di letture del dizionario dal valore della tabella ID. | 
| `dictionaryReadsFromIdToValueTable` | Numero di letture del dizionario dall'ID della tabella valori. | 
| `dictionaryWritesToValueToIdTable` | Numero di scritture del dizionario nel valore della tabella ID. | 
| `dictionaryWritesToIdToValueTable` | Numero di scritture del dizionario nell'ID della tabella valori. | 
| `rangeCountsInAllIndexes` | Numero di conteggio intervalli in tutti gli indici. | 
| `deadlockCount` | Numero di deadlock nella query. | 
| `singleCardinalityInserts` | Numero di inserimenti a cardinalità singola eseguiti. | 
| `singleCardinalityInsertDeletions` | Numero di istruzioni eliminate durante un inserimento a cardinalità singola. | 
| `sharedLocksWaitTimeMillis` | Numero di millisecondi trascorsi in attesa di blocchi condivisi. | 
| `exclusiveLocksWaitTimeMillis` | Numero di millisecondi trascorsi in attesa di blocchi esclusivi. | 

## Esempio di registrazione di log di debug per una query lenta
<a name="slow-query-log-debug-output-sample"></a>

L'esecuzione della seguente query Gremlin potrebbe richiedere più tempo rispetto alla soglia impostata per le query lente:

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

Quindi, se si abilita la registrazione di log delle query lente in modalità debug, verranno registrati i seguenti attributi per la query, in un formato simile a quello riportato di seguito:

```
{
  "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
  }
}
```