

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan pencatatan kueri lambat Amazon Neptunus
<a name="slow-query-logs"></a>

Mengidentifikasi, men-debug, dan mengoptimalkan kueri yang berjalan lambat bisa jadi sulit. Saat pencatatan kueri lambat Neptunus diaktifkan, atribut dari semua kueri yang berjalan lama secara otomatis dicatat untuk mempermudah proses ini.

**catatan**  
[Pencatatan kueri lambat diperkenalkan pada rilis mesin Neptunus 1.2.1.0.](engine-releases-1.2.1.0.md)

Anda mengaktifkan pencatatan kueri lambat menggunakan parameter cluster DB [neptune\_enable\_slow\_query\_log](parameters.md#parameters-db-cluster-parameters-neptune_enable_slow_query_log). Secara default, parameter ini diatur ke`disabled`. Mengaturnya ke `info` atau `debug` mengaktifkan pencatatan kueri lambat. `info`Pengaturan mencatat beberapa atribut berguna dari setiap kueri yang berjalan lambat, sedangkan `debug` pengaturan mencatat semua atribut yang tersedia.

Untuk mengatur ambang batas untuk apa yang dianggap sebagai kueri yang berjalan lambat, gunakan parameter cluster DB [neptune\_slow\_query\_log\_threshold](parameters.md#parameters-db-cluster-parameters-neptune_slow_query_log_threshold) untuk menentukan jumlah milidetik setelah itu kueri yang berjalan dianggap lambat dan dicatat saat pencatatan kueri lambat diaktifkan. Nilai default adalah 5000 milidetik (5 detik).

Anda dapat mengatur parameter cluster DB ini [di Konsol Manajemen AWS](parameter-groups.md#parameters-editgroup), atau menggunakan AWS CLI perintah [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/neptune/modify-db-cluster-parameter-group.html), atau fungsi DBCluster ParameterGroup manajemen [Modify](api-parameters.md#ModifyDBClusterParameterGroup).

**catatan**  
Parameter pencatatan kueri lambat bersifat dinamis, artinya mengubah nilainya tidak memerlukan atau menyebabkan restart cluster DB Anda.

## Untuk melihat log kueri lambat di Konsol Manajemen AWS
<a name="slow-query-logs-console"></a>

Anda dapat melihat dan mengunduh log kueri lambat di Konsol Manajemen AWS, sebagai berikut:

Pada halaman **Instances**, pilih instans DB dan kemudian gulir ke bagian **Log**. Anda kemudian dapat memilih file log di sana dan kemudian memilih **Unduh** untuk mengunduhnya.

## File yang dihasilkan oleh pencatatan kueri lambat Neptunus
<a name="slow-query-log-files"></a>

File log yang dihasilkan oleh pencatatan kueri lambat di Neptunus memiliki karakteristik sebagai berikut:
+ File-file tersebut dikodekan sebagai UTF-8.
+ Kueri dan atributnya dicatat dalam bentuk JSON.
+ Atribut nol dan kosong tidak dicatat, kecuali untuk `queryTime` data.
+ Log mencakup beberapa file, yang jumlahnya bervariasi dengan ukuran instance.
+ Entri log tidak berurutan. Anda dapat menggunakan `timestamp` nilainya untuk memesannya.
+ Untuk melihat peristiwa terbaru, Anda mungkin harus meninjau semua file log kueri lambat.
+ File log diputar saat mencapai 100 MiB secara agregat. Pembatasan ini tidak dapat dikonfigurasi.

## Atribut kueri masuk `info` mode
<a name="slow-query-log-info-attributes"></a>

Atribut berikut dicatat untuk kueri lambat ketika parameter cluster `neptune_enable_slow_query_log` DB telah disetel ke`info`:



- ****requestResponseMetadata****
  - **Atribut:** `requestId` / **Deskripsi:** Permintaan id kueri.
  - **Atribut:** `requestType` / **Deskripsi:** Jenis permintaan, seperti HTTP atau WebSocket.
  - **Atribut:** `responseStatusCode` / **Deskripsi:** Kode status respons kueri, seperti 200.
  - **Atribut:** `exceptionClass` / **Deskripsi:** Kelas pengecualian kesalahan dikembalikan setelah eksekusi kueri.

- ****QueryStats****
  - **Atribut:** `query` / **Deskripsi:** String kueri.
  - **Atribut:** `queryFingerprint` / **Deskripsi:** Sidik jari dari kueri.
  - **Atribut:** `queryLanguage` / **Deskripsi:** Bahasa kueri, seperti Gremlin, SPARQL atau OpenCypher.

- ****MemoryStats****
  - **Atribut:** `allocatedPermits` / **Deskripsi:** Izin dialokasikan untuk kueri.
  - **Atribut:** `approximateUsedMemoryBytes` / **Deskripsi:** Perkiraan memori yang digunakan oleh kueri selama eksekusi.

- ****queryTimeStats****
  - **Atribut:** `startTime` / **Deskripsi:** Waktu mulai kueri (UTC).
  - **Atribut:** `overallRunTimeMs` / **Deskripsi:** Kueri total waktu berjalan, dalam milidetik.
  - **Atribut:** `parsingTimeMs` / **Deskripsi:** Waktu penguraian kueri, dalam milidetik.
  - **Atribut:** `waitingTimeMs` / **Deskripsi:** Waktu tunggu Gremlin/SPARQL/openCypher antrian kueri, dalam milidetik
  - **Atribut:** `executionTimeMs` / **Deskripsi:** Waktu eksekusi kueri, dalam milidetik.
  - **Atribut:** `serializationTimeMs` / **Deskripsi:** Waktu serialisasi kueri, dalam milidetik.

- ****Penghitung PernyataanPenghitung****
  - **Atribut:** `read` / **Deskripsi:** Jumlah pernyataan yang dibaca.
  - **Atribut:** `written` / **Deskripsi:** Jumlah pernyataan yang ditulis.
  - **Atribut:** `deleted` / **Deskripsi:** Jumlah pernyataan yang dihapus.

- ****Penghitung Transaksi****
  - **Atribut:** `committed` / **Deskripsi:** Jumlah transaksi yang dilakukan.
  - **Atribut:** `rolledBack` / **Deskripsi:** Jumlah transaksi digulirkan kembali.

- ****VerteXCounters****
  - **Atribut:** `added` / **Deskripsi:** Jumlah simpul ditambahkan.
  - **Atribut:** `removed` / **Deskripsi:** Jumlah simpul dihapus.
  - **Atribut:** `propertiesAdded` / **Deskripsi:** Jumlah properti simpul yang ditambahkan.
  - **Atribut:** `propertiesRemoved` / **Deskripsi:** Jumlah properti simpul dihapus.

- ****EdgeCounters****
  - **Atribut:** `added` / **Deskripsi:** Jumlah tepi ditambahkan.
  - **Atribut:** `removed` / **Deskripsi:** Jumlah tepi dihapus.
  - **Atribut:** `propertiesAdded` / **Deskripsi:** Jumlah properti tepi ditambahkan.
  - **Atribut:** `propertiesRemoved` / **Deskripsi:** Jumlah properti tepi dihapus.

- ****ResultCache****
  - **Atribut:** `hitCount` / **Deskripsi:** Hasil cache hit count.
  - **Atribut:** `missCount` / **Deskripsi:** Hasil cache melewatkan hitungan.
  - **Atribut:** `putCount` / **Deskripsi:** Hasil cache menempatkan hitungan.

- ****concurrentExecutionStats****
  - **Atribut:** `acceptedQueryCountAtStart` / **Deskripsi:** Kueri paralel diterima dengan eksekusi kueri saat ini di awal.
  - **Atribut:** `runningQueryCountAtStart` / **Deskripsi:** Kueri paralel berjalan dengan eksekusi kueri saat ini di awal.
  - **Atribut:** `acceptedQueryCountAtEnd` / **Deskripsi:** Kueri paralel diterima dengan eksekusi kueri saat ini di akhir.
  - **Atribut:** `runningQueryCountAtEnd` / **Deskripsi:** Kueri paralel berjalan dengan eksekusi kueri saat ini di akhir.

- ****QueryBatch****
  - **Atribut:** `queryProcessingBatchSize` / **Deskripsi:** Ukuran Batch selama pemrosesan kueri.
  - **Atribut:** `querySerialisationBatchSize` / **Deskripsi:** Ukuran batch selama serialisasi kueri.



## Atribut kueri masuk `debug` mode
<a name="slow-query-log-debug-attributes"></a>

Ketika parameter cluster `neptune_enable_slow_query_log` DB telah disetel ke`debug`, atribut penghitung penyimpanan berikut dicatat selain atribut yang dicatat seperti dalam `info` mode:


| Atribut | Deskripsi | 
| --- | --- | 
| `statementsScannedInAllIndexes` | Pernyataan dipindai di semua indeks. | 
| `statementsScannedSPOGIndex` | Pernyataan dipindai dalam indeks SPOG. | 
| `statementsScannedPOGSIndex` | Pernyataan dipindai dalam indeks POGS. | 
| `statementsScannedGPSOIndex` | Pernyataan dipindai dalam indeks GPSO. | 
| `statementsScannedOSGPIndex` | Pernyataan dipindai dalam indeks OSGP. | 
| `statementsScannedInChunk` | Pernyataan dipindai bersama dalam potongan. | 
| `postFilteredStatementScans` | Pernyataan yang tersisa setelah pemfilteran posting setelah pemindaian. | 
| `distinctStatementScans` | Pernyataan berbeda dipindai. | 
| `statementsReadInAllIndexes` | Pernyataan dibaca setelah pemindaian pemfilteran posting di semua indeks. | 
| `statementsReadSPOGIndex` | Pernyataan dibaca setelah pemindaian posting pemfilteran dalam indeks SPOG. | 
| `statementsReadPOGSIndex` | Pernyataan dibaca setelah pemindaian pemfilteran posting dalam indeks POGS. | 
| `statementsReadGPSOIndex` | Pernyataan dibaca setelah pemindaian posting pemfilteran dalam indeks GPSO. | 
| `statementsReadOSGPIndex` | Pernyataan dibaca setelah pemindaian posting pemfilteran dalam indeks OSGP. | 
| `accessPathSearches` | Jumlah pencarian jalur akses. | 
| `fullyBoundedAccessPathSearches` | Jumlah pencarian jalur akses kunci yang sepenuhnya dibatasi. | 
| `accessPathSearchedByPrefix` | Jumlah jalur akses yang dicari berdasarkan awalan. | 
| `searchesWhereRecordsWereFound` | Jumlah pencarian yang memiliki 1 atau lebih catatan sebagai output. | 
| `searchesWhereRecordsWereNotFound` | Jumlah pencarian yang tidak memiliki catatan sebagai output. | 
| `totalRecordsFoundInSearches` | Total catatan yang ditemukan dari semua pencarian. | 
| `statementsInsertedInAllIndexes` | Jumlah pernyataan yang dimasukkan dalam semua indeks. | 
| `statementsUpdatedInAllIndexes` | Jumlah pernyataan yang diperbarui di semua indeks. | 
| `statementsDeletedInAllIndexes` | Jumlah pernyataan yang dihapus di semua indeks. | 
| `predicateCount` | Jumlah predikat. | 
| `dictionaryReadsFromValueToIdTable` | Jumlah kamus yang dibaca dari nilai ke tabel ID. | 
| `dictionaryReadsFromIdToValueTable` | Jumlah kamus yang dibaca dari ID tabel nilai. | 
| `dictionaryWritesToValueToIdTable` | Jumlah kamus menulis ke nilai ke tabel ID. | 
| `dictionaryWritesToIdToValueTable` | Jumlah kamus menulis ke ID ke tabel nilai. | 
| `rangeCountsInAllIndexes` | Jumlah jumlah rentang di semua indeks. | 
| `deadlockCount` | Jumlah kebuntuan dalam kueri. | 
| `singleCardinalityInserts` | Jumlah sisipan kardinansi tunggal dilakukan. | 
| `singleCardinalityInsertDeletions` | Jumlah pernyataan yang dihapus selama penyisipan kardinalitas tunggal. | 
| `sharedLocksWaitTimeMillis` | Jumlah milidetik yang dihabiskan menunggu kunci bersama. | 
| `exclusiveLocksWaitTimeMillis` | Jumlah milidetik yang dihabiskan menunggu kunci eksklusif. | 

## Contoh logging debug untuk kueri lambat
<a name="slow-query-log-debug-output-sample"></a>

Kueri Gremlin berikut bisa memakan waktu lebih lama untuk dijalankan daripada ambang batas yang ditetapkan untuk kueri lambat:

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

Kemudian, jika pencatatan kueri lambat diaktifkan dalam mode debug, atribut berikut akan dicatat untuk kueri, dalam bentuk seperti ini:

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