

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Neptune スロークエリロギングの使用
<a name="slow-query-logs"></a>

実行速度が遅いクエリの特定、デバッグ、最適化は難しい場合があります。Neptune のスロークエリロギングを有効にすると、このプロセスを簡単にするために、長時間実行されるすべてのクエリの属性が自動的にログに記録されます。

**注記**  
スロークエリロギングは Neptune [エンジンリリース 1.2.1.0](engine-releases-1.2.1.0.md) で導入されました。

スロークエリロギングを有効にするには [neptune\$1enable\$1slow\$1query\$1log](parameters.md#parameters-db-cluster-parameters-neptune_enable_slow_query_log) DB クラスターパラメータを使用します。デフォルトでは、このパラメータは `disabled` に設定されます。これを `info` または `debug` に設定すると、スロークエリロギングが有効になります。`info` 設定は、実行速度が遅い各クエリの少数の有用な属性を記録するのに対して、`debug` 設定は、使用可能なすべての属性を記録します。

実行速度が遅いと見なされるクエリのしきい値を設定するには、[neptune\$1slow\$1query\$1log\$1threshold](parameters.md#parameters-db-cluster-parameters-neptune_slow_query_log_threshold) DB クラスターパラメータを使用して、実行中のクエリが遅いと見なされ、低速クエリのロギングが有効になっている場合にログに記録されるまでの時間をミリ秒単位で指定します。デフォルト値は 5,000 ミリ秒 (5 秒) です。

これらの DB クラスターパラメータは、[AWS マネジメントコンソールで](parameter-groups.md#parameters-editgroup)、または [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/neptune/modify-db-cluster-parameter-group.html) AWS CLI コマンド、または [ModifyDBClusterParameterGroup](api-parameters.md#ModifyDBClusterParameterGroup) 管理関数を使用して設定できます。

**注記**  
スロークエリのロギングパラメータは動的です。つまり、値を変更しても DB クラスターを再起動する必要はなく、再起動の原因にもなりません。

## でスロークエリログを表示するには AWS マネジメントコンソール
<a name="slow-query-logs-console"></a>

スロークエリログは AWS マネジメントコンソール、次のように で表示およびダウンロードできます。

**[インスタンス]** ページで、DB インスタンスを選択し、**[ログ]** セクションまでスクロールします。その後、そこでログファイルを選択し、**[ダウンロード]** を選択してダウンロードできます。

## Neptune スロークエリロギングによって生成されたファイル
<a name="slow-query-log-files"></a>

Neptune のスロークエリロギングによって生成されるログファイルには、次のような特徴があります。
+ ファイルは UTF-8 としてエンコードされます。
+ クエリとその属性は JSON 形式で記録されます。
+ NULL や空の属性は、`queryTime` データを除いてログに記録されません。
+ ログは複数のファイルにまたがり、ファイル数はインスタンスのサイズによって異なります。
+ ログのエントリは、順番になっていません。並べ替えには、`timestamp` 値を使用できます。
+ 最新のイベントを表示するには、すべてのログファイルの確認が必要な場合があります。
+ ログファイルは、合計 100 MB に達するとローテーションされます。この制限は設定できません。

## `info` モードで記録されるクエリ属性
<a name="slow-query-log-info-attributes"></a>

`neptune_enable_slow_query_log`DB クラスターパラメータがに設定されている場合、スロークエリでは以下の属性が記録されます`info`。

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

## `debug` モードで記録されるクエリ属性
<a name="slow-query-log-debug-attributes"></a>

`neptune_enable_slow_query_log`DB クラスターパラメータをに設定すると`debug`、in mode として記録される属性に加えて、以下のストレージカウンター属性が記録されます。`info`


| 属性 | 説明 | 
| --- | --- | 
| `statementsScannedInAllIndexes` | すべてのインデックスでステートメントがスキャンされました。 | 
| `statementsScannedSPOGIndex` | SPOG インデックスでスキャンされたステートメント。 | 
| `statementsScannedPOGSIndex` | POGS インデックスでスキャンされたステートメント。 | 
| `statementsScannedGPSOIndex` | GPSO インデックスでスキャンされたステートメント。 | 
| `statementsScannedOSGPIndex` | OSGP インデックスでスキャンされたステートメント。 | 
| `statementsScannedInChunk` | ステートメントはチャンクにまとめてスキャンされました。 | 
| `postFilteredStatementScans` | スキャン後のポストフィルタリング後に残ったステートメント。 | 
| `distinctStatementScans` | 個別のステートメントがスキャンされました。 | 
| `statementsReadInAllIndexes` | スキャン後に読み込まれたステートメントは、すべてのインデックスでフィルタリングされます。 | 
| `statementsReadSPOGIndex` | SPOG インデックスのスキャンポストフィルタリング後に読み込まれるステートメント。 | 
| `statementsReadPOGSIndex` | POGS インデックスのスキャンポストフィルタリング後に読み込まれるステートメント。 | 
| `statementsReadGPSOIndex` | GPSO インデックスのスキャンポストフィルタリング後に読み込まれるステートメント。 | 
| `statementsReadOSGPIndex` | OSGP インデックスのスキャンポストフィルタリング後に読み込まれたステートメント。 | 
| `accessPathSearches` | アクセスパス検索の数。 | 
| `fullyBoundedAccessPathSearches` | 完全に制限されたキーアクセスパス検索の数。 | 
| `accessPathSearchedByPrefix` | プレフィックスで検索されたアクセスパスの数。 | 
| `searchesWhereRecordsWereFound` | 1 つ以上のレコードが出力された検索の数。 | 
| `searchesWhereRecordsWereNotFound` | レコードが出力されなかった検索の数。 | 
| `totalRecordsFoundInSearches` | すべての検索で見つかったレコードの合計数。 | 
| `statementsInsertedInAllIndexes` | すべてのインデックスに挿入されたステートメントの数。 | 
| `statementsUpdatedInAllIndexes` | すべてのインデックスで更新されたステートメントの数。 | 
| `statementsDeletedInAllIndexes` | すべてのインデックスで削除されたステートメントの数。 | 
| `predicateCount` | 述語の数。 | 
| `dictionaryReadsFromValueToIdTable` | 値から ID テーブルにディクショナリを読み込む回数。 | 
| `dictionaryReadsFromIdToValueTable` | バリューテーブルの ID からのディクショナリ読み取り数。 | 
| `dictionaryWritesToValueToIdTable` | ID テーブルの値に書き込まれたディクショナリの数です。 | 
| `dictionaryWritesToIdToValueTable` | ID からバリューテーブルに書き込まれたディクショナリの数です。 | 
| `rangeCountsInAllIndexes` | すべてのインデックスの範囲カウント数。 | 
| `deadlockCount` | クエリ内のデッドロックの数。 | 
| `singleCardinalityInserts` | 単一カーディナニティ・インサートの実行回数。 | 
| `singleCardinalityInsertDeletions` | 1 回のカーディナリティ挿入中に削除されたステートメントの数。 | 
| `sharedLocksWaitTimeMillis` | 共有ロックの待機にかかったミリ秒数。 | 
| `exclusiveLocksWaitTimeMillis` | 排他的ロックの待機にかかったミリ秒数。 | 

## スロークエリのデバッグログの例
<a name="slow-query-log-debug-output-sample"></a>

次の Gremlin クエリは、スロークエリに設定されたしきい値よりも実行に時間がかかる場合があります。

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

その場合、スロークエリロギングがデバッグモードで有効になっていると、クエリの次の属性が次のような形式でログに記録されます。

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