リソース

/

ACP 実習ノート

[第37回] SQL承認前に実行計画も確認する

DBアクセス制御 · 運用管理

2026年11月9日

SQLと理由に加えて実行計画があれば、対象テーブルやインデックスも見ながら検討できる。

 

SQL Requestへ計画を添付し、作成者の資料を承認者も同じ申請で確認できるか試した。

 

 

実行計画を添付できるよう準備する

 

管理者の全体設定で Use "Attach Explain Results" feature in SQL Requestを有効にした。申請ごとのAttach Explain Resultsは初期Offで、必要時に作成者が有効にする。

 

画面1. SQL Requestの計画添付を利用可能にした。
画面1. SQL Requestの計画添付を利用可能にした。

 

SQL Explain Labを作り、開発者に Lab - Explain Review を付与し、SelectとExplainを選んだ。

 

画面2. 今回のSelectとExplainを用意した。
画面2. 今回のSelectとExplainを用意した。

 

既存のOrders Lab - SQL Change Approvalで、開発者が申請・実行、担当者が承認する。

 

 

注文1件を取得するSQLの計画を見る

 

新SQL Requestで接続・route_lab・Textを選び、27002の状態と金額のSELECTを入力した。

 

Attach Explain Resultsを有効にし、Tableを選んでExplainを押した。 結果にはSQLとMySQLの実行計画が並んだ。

 

画面3. 申請画面で計画を確認し、添付を選んだ。
画面3. 申請画面で計画を確認し、添付を選んだ。

 

orders、type const、key PRIMARY、rows 1だった。rowsはMySQLの予測で、番号条件の主キー利用を申請段階で確認できた。

 

計画を添付し、 注文参照SQLの計画確認 — 第37回というタイトルで提出した。

 

 

承認者も同じ計画を確認する

 

Demo Approverで申請を開き、 Explain Results タブを選ぶと同じSELECTとorders、PRIMARY、予測1行が表示された。

 

画面4. 承認者もSQLと計画を同じ画面で確認した。
画面4. 承認者もSQLと計画を同じ画面で確認した。

 

「番号条件、PRIMARYを使う計画、予測1行を確認。架空注文参照を承認します」と実確認内容を残して承認した。

 

画面5. 計画の確認内容をコメントに残した。
画面5. 計画の確認内容をコメントに残した。

 

資料を別送・別画面検索せず、SQLと計画が同じ申請にあり照合しやすかった。

 

 

承認済みSQLを実行する

 

開発者が承認済みを開きExecuteを一度押すと、Resultsに 1 Rows selected, in 10 msと表示された。

 

画面6. 承認SELECT実行後に1行取得と確認した。
画面6. 承認SELECT実行後に1行取得と確認した。

 

前のrows 1は予測で、1 Rows selectedは実件数だ。計画確認から承認・実行までつながった。

 

 

検討した申請と実行記録を確認する

 

Query Auditに開発者、SQL Explain Lab、Lab - Explain Review、成功と経路 SQL Requestが表示され、route_lab.ordersとSQLは申請どおりだった。

 

画面7. 承認SELECTはSQL Request経由の成功記録となった。
画面7. 承認SELECTはSQL Request経由の成功記録となった。

 

Workflow Logsには提出・承認・実行とコメントが残り、計画を見てどう承認し、その後動いたかを追えた。

 

画面8. 同じ申請の提出・承認・実行をまとめて確認した。
画面8. 同じ申請の提出・承認・実行をまとめて確認した。

 

終了後に権限を回収し全体設定をOffへ戻しても、完了申請のExplain Resultsは残っていた。

 

SQL・理由・計画を一つの申請で検討し意見を残せるため、承認資料を別々にやり取りする手間が減った。

 

QueryPie Community 11.6.7とMySQL 8.0.42で実習ユーザー・注文を使った。

 

参考: 実行計画(Explain)の利用 · General設定 · SQL Request