機能の概要
指定されたSQLステートメントに対して、特定の期間内の詳細なチューニング推奨事項を照会します。このインターフェースは、インデックス最適化の推奨事項、実行計画の分析、パフォーマンス指標の統計などを含む総合的な診断情報を返し、ユーザーがSQLのパフォーマンスボトルネックを特定し、ターゲットを絞った最適化を行うのに役立ちます。
呼び出しの説明
インターフェース制約
呼び出し元はマルチクラウドAPIにアクセスするためのキーを保有している必要があります。AccessKey IDとAccessKey Secretの取得方法の詳細については、アクセスキーの管理をご参照ください。
リクエストパス
GET /api/v2/instances/{instanceId}/tenants/{tenantId}/sqls/{sqlId}/tuningAdvices
リクエストパラメータ
Path
パラメータ |
型 |
必須 |
説明 |
例 |
|---|---|---|---|---|
| instanceId | String | はい | OceanBaseクラウドデータベースインスタンスID | obcluster-***** |
| tenantId | String | はい | テナントID | t4louaeei**** |
| sqlId | String | はい | SQLステートメントの一意の識別子 | sql_123456789 |
Query
パラメータ |
型 |
必須 |
説明 |
例 |
|---|---|---|---|---|
| requestId | String | はい | リクエストID。追跡に使用されます | dc302d76-66b5-48d8-ab53-a035******** |
| dbName | String | はい | データベース名 | testdb |
| startTime | String | はい | 開始時間(UTC) | 2026-02-25 15:40:43+00:00 |
| endTime | String | はい | 終了時間(UTC) | 2026-02-26 10:40:43+00:00 |
戻り値
パラメータ名 |
型 |
説明 |
|---|---|---|
| data | Object | SQLチューニングの推奨事項データ |
| database | String | データベース名 |
| tenantId | String | テナントID |
| type | String | 最適化タイプ |
| columnNames | String | インデックス列の順序 |
| dbName | String | データベース名 |
| table | String | テーブル名 |
| columns | Array | インデックス列情報 |
| columnName | String | 列名 |
| ndv | Integer | NDV |
| minValue | String | 最小値 |
| maxValue | String | 最大値 |
| plan | Object | 実行計画 |
| avgApplicationWaitTime | Integer | 期間内の平均 Application イベント待機時間(ミリ秒) |
| avgBufferGets | Integer | 期間内の計画の平均キャッシュ読み取り回数 |
| avgConcurrencyWaitTime | Integer | 期間内の平均 Concurrency イベント待機時間(ミリ秒) |
| avgCpuTime | Integer | 期間内の平均 CPU 時間(ミリ秒) |
| avgDiskReads | Integer | 期間内の平均物理読み取り回数 |
| avgDiskWrites | Integer | 期間内の平均物理書き込み回数 |
| avgElapsedTime | Integer | 期間内の平均区間待機時間(ミリ秒) |
| avgRowProcessed | Integer | 期間内の平均行処理待機時間(ミリ秒) |
| avgUserIoWaitTime | Integer | 期間内の平均 UserIo イベント待機時間(ミリ秒) |
| collectTimeUs | Long | 収集時間 |
| delayedLargeQueryPercentage | Double | 長時間実行クエリの遅延割合 |
| execPs | Double | 期間内の平均1秒間の実行回数 |
| executions | Long | 期間内の総実行回数 |
| firstLoadTime | Long | 最初ロード時間 |
| firstLoadTimeUs | Long | 最初ロード時間 |
| hitDiagnosis | Boolean | ヒット診断かどうか |
| largeQueryPercentage | Double | 長時間実行クエリの完了割合 |
| mergedVersion | Long | マージバージョン |
| obDbId | Long | データベースID |
| obServerId | Long | サーバーID |
| outlineData | String | SQL実行計画のoutline_dataフィールド |
| outlineId | Long | アウトラインID |
| planId | Long | 計画ID |
| planSize | Long | 計画サイズ |
| planType | String | 計画タイプ:LOCAL、REMOTE、DIST |
| server | String | ノードIP |
| serverSn | String | ノードID |
| tableScan | Boolean | 全表スキャンかどうか |
| planHash | String | SQL実行計画の診断システム内部での識別子 |
| timeoutPercentage | Double | タイムアウト割合 |
| schemaVersion | Long | スキーマバージョン |
| sqlId | String | SQL ID |
| uid | String | 計画の一意の識別子 |
| requestId | String | リクエストID |
| success | Boolean | リクエストが成功したかどうか |
例
リクエスト例
curl --digest -u '<あなたのAK:SK>' \
-X GET \
'https://api-cloud.oceanbase.com/api/v2/instances/{instanceId}/tenants/{tenantId}/sqls/{sqlId}/tuningAdvices?requestId={requestId}&dbName={dbName}&startTime={startTime}&endTime={endTime}'
戻り値例
JSON 形式
{
"data": {
"database": "testdb",
"tenantId": "t4louaeei****",
"type": "INDEX",
"columnNames": "col1, col2",
"dbName": "testdb",
"table": "test_table",
"columns": [
{
"columnName": "col1",
"ndv": 1000,
"minValue": "1",
"maxValue": "1000"
}
],
"plan": {
"avgApplicationWaitTime": 0,
"avgBufferGets": 150,
"avgConcurrencyWaitTime": 5,
"avgCpuTime": 120,
"avgDiskReads": 10,
"avgDiskWrites": 0,
"avgElapsedTime": 150,
"avgRowProcessed": 100,
"avgUserIoWaitTime": 25,
"collectTimeUs": 1708860000000000,
"delayedLargeQueryPercentage": 0.0,
"execPs": 10.5,
"executions": 1050,
"firstLoadTime": 1708850000000,
"firstLoadTimeUs": 1708850000000000,
"hitDiagnosis": true,
"largeQueryPercentage": 1.2,
"mergedVersion": 1,
"obDbId": 1100611139453773,
"obServerId": 1,
"outlineData": "",
"outlineId": 0,
"planId": 123456,
"planSize": 1024,
"planType": "LOCAL",
"server": "xxx.xxx.x.xxx:xxxx",
"serverSn": "server-1",
"tableScan": false,
"planHash": "abc123def456",
"timeoutPercentage": 0.0,
"schemaVersion": 1,
"sqlId": "sql_123456789",
"uid": "plan_uid_001"
}
},
"requestId": "dc302d76-66b5-48d8-ab53-a035********",
"success": true
}