loose_sql_trace_type
パラメーターがDEMANDに設定されている場合、dbms_sql.add_trace
ストアドプロシージャを使用して、SQLトレース機能で追跡する必要のあるSQL文を指定できます。
構文
dbms_sql.add_trace('<schema>', '<query>')
ストアドプロシージャが実行されると、実行中のSQL文の定数が自動的にテンプレート化され、テンプレートが形成されます。 テンプレートに一致するSQL文は、SQLトレース機能によって追跡されます。
Parameters
パラメーター | 説明 |
schema | スキーマの名前。 |
query | 実行中のSQLステートメント。 |
注意事項
ストアドプロシージャがプライマリノードで実行されると、ストアドプロシージャの実行はプライマリノードに永続的に保存され、mysql.sql_sharingテーブルの関連する実行レコードは削除され、読み取り専用ノードに同期されます。
ストアドプロシージャが読み取り専用ノードで実行される場合、ストアドプロシージャの実行はノードに永続的に格納されません。 ストアドプロシージャはノードでのみ実行できます。 クラスターエンドポイントを使用してデータベースにアクセスすると、テンプレート化されたSQL文は自動的にプライマリノードにルーティングされます。
例
次のステートメントを実行して、SQLトレース機能で追跡する必要のあるSQLステートメントを指定できます。
dbms_sql.add_trace('test', 'select * from t where c1 > 1 and c1 < 10 ') を呼び出します。
次のステートメントを実行して、mysql. SQL_sharing
システムテーブル内の追跡されたsqlステートメントの実行レコードを照会できます。
select * from mysql.sql_sharing\G
次の出力が返されます。
*************************** 1。 行 ***************************
Id: (id番号)
Sql_id: 82t4dswtqjg02
Schema_name: テスト
タイプ: SQL_TRACE
Digest_text: SELECT * FROM 't' WHERE 'c1' > ? そして 'c1' < ?
Plan_id: NULL
プラン: NULL
バージョン: 0
Create_time: 2022-11-07 19:05:27.980605
Update_time: 2022-11-07 19:05:27.980605
Extra_info: NULL
上記の出力は、追跡されるSQL文の定数が自動的にテンプレート化され、テンプレートを形成することを示しています。
テンプレートに一致する次のSQL文を実行できます。
select * from t (c1 > 1およびc1 < 10);
* をtから選択します。c1 > 1およびc1 < 100;
次の文を実行して、追跡されたSQL文のトレース情報と、information_schema.sql_sharing
システムテーブルのSQL文の実行計画に関する統計を照会できます。
information_schema.sql_sharing\Gから * を選択
次の出力が返されます。
*************************** 1。 行 ***************************
タイプ: SQL
SQL_ID: 82t4dswtqjg02
SCHEMA_NAME: テスト
DIGEST_TEXT: SELECT * FROM 't' WHERE 'c1' > ? そして 'c1' < ?
PLAN_ID: NULL
プラン: NULL
PLAN_EXTRA: NULL
ERROR_CODE: NULL
REF_BY: SQL_TRACE (需要)
FIRST_LOAD_TIME: 2022-11-07 19:05:28
LAST_HIT_TIME: 2022-11-07 19:17:24
実行: 2
SUM_WAIT_TIME: 363
MIN_WAIT_TIME: 179
MAX_WAIT_TIME: 184
SUM_EXEC_TIME: 925
MIN_EXEC_TIME: 438
MAX_EXEC_TIME: 487
SUM_ROWS_SENT: 106
MIN_ROWS_SENT: 8
MAX_ROWS_SENT: 98
SUM_ROWS_EXAMINED: 108
MIN_ROWS_EXAMINED: 8
MAX_ROWS_EXAMINED: 100
SUM_ROWS_AFFECTED: 0
MIN_ROWS_AFFECTED: 0
MAX_ROWS_AFFECTED: 0
SUM_LOGICAL_READ: 122
MIN_LOGICAL_READ: 19
MAX_LOGICAL_READ: 103
SUM_PHY_SYNC_READ: 0
MIN_PHY_SYNC_READ: 0
MAX_PHY_SYNC_READ: 0
SUM_PHY_ASYNC_READ: 0
MIN_PHY_ASYNC_READ: 0
MAX_PHY_ASYNC_READ: 0
追加: {TRACE_ROW_ID:10}
*************************** 2. 行 ***************************
タイプ: 計画
SQL_ID: 82t4dswtqjg02
SCHEMA_NAME: テスト
DIGEST_TEXT: NULL
プランID: 5a4cvp4gjqgfj
プラン: /* + NO_INDEX('t' @ 'select#1 ') * /
PLAN_EXTRA: {'t' @ 'select#1 ':ALL}
ERROR_CODE: 0
REF_BY: SQL_TRACE (需要)
FIRST_LOAD_TIME: 2022-11-07 19:17:24
LAST_HIT_TIME: 2022-11-07 19:17:24
実行: 1
SUM_WAIT_TIME: 184
MIN_WAIT_TIME: 184
MAX_WAIT_TIME: 184
SUM_EXEC_TIME: 487
MIN_EXEC_TIME: 487
MAX_EXEC_TIME: 487
SUM_ROWS_SENT: 98
MIN_ROWS_SENT: 98
MAX_ROWS_SENT: 98
SUM_ROWS_EXAMINED: 100
MIN_ROWS_EXAMINED: 100
MAX_ROWS_EXAMINED: 100
SUM_ROWS_AFFECTED: 0
MIN_ROWS_AFFECTED: 0
MAX_ROWS_AFFECTED: 0
SUM_LOGICAL_READ: 103
MIN_LOGICAL_READ: 103
MAX_LOGICAL_READ: 103
SUM_PHY_SYNC_READ: 0
MIN_PHY_SYNC_READ: 0
MAX_PHY_SYNC_READ: 0
SUM_PHY_ASYNC_READ: 0
MIN_PHY_ASYNC_READ: 0
MAX_PHY_ASYNC_READ: 0
EXTRA: NULL
3. 行 ***************************
タイプ: 計画
SQL_ID: 82t4dswtqjg02
SCHEMA_NAME: テスト
DIGEST_TEXT: NULL
プランID: 463zszw4mbv3w
プラン: /* + INDEX('t' @ 'select#1' 'i_c1') * /
PLAN_EXTRA: {'t' @ 'select#1 ':range}
ERROR_CODE: 0
REF_BY: SQL_TRACE (需要)
FIRST_LOAD_TIME: 2022-11-07 19:17:21
LAST_HIT_TIME: 2022-11-07 19:17:21
実行: 1
SUM_WAIT_TIME: 179
MIN_WAIT_TIME: 179
MAX_WAIT_TIME: 179
SUM_EXEC_TIME: 438
MIN_EXEC_TIME: 438
MAX_EXEC_TIME: 438
SUM_ROWS_SENT: 8
MIN_ROWS_SENT: 8
MAX_ROWS_SENT: 8
SUM_ROWS_EXAMINED: 8
MIN_ROWS_EXAMINED: 8
MAX_ROWS_EXAMINED: 8
SUM_ROWS_AFFECTED: 0
MIN_ROWS_AFFECTED: 0
MAX_ROWS_AFFECTED: 0
SUM_LOGICAL_READ: 19
MIN_LOGICAL_READ: 19
MAX_LOGICAL_READ: 19
SUM_PHY_SYNC_READ: 0
MIN_PHY_SYNC_READ: 0
MAX_PHY_SYNC_READ: 0
SUM_PHY_ASYNC_READ: 0
MIN_PHY_ASYNC_READ: 0
MAX_PHY_ASYNC_READ: 0
EXTRA: NULL
結論
上記の出力は、テンプレートに一致する上記のSQLステートメントが、i_c1
インデックス範囲スキャンおよびフルテーブルスキャンの実行プランに対応することを示しています。