[第37回] SQL承認前に実行計画も確認する
2026年11月9日
SQLと理由に加えて実行計画があれば、対象テーブルやインデックスも見ながら検討できる。
SQL Requestへ計画を添付し、作成者の資料を承認者も同じ申請で確認できるか試した。
実行計画を添付できるよう準備する
管理者の全体設定で Use "Attach Explain Results" feature in SQL Requestを有効にした。申請ごとのAttach Explain Resultsは初期Offで、必要時に作成者が有効にする。

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

既存のOrders Lab - SQL Change Approvalで、開発者が申請・実行、担当者が承認する。
注文1件を取得するSQLの計画を見る
新SQL Requestで接続・route_lab・Textを選び、27002の状態と金額のSELECTを入力した。
Attach Explain Resultsを有効にし、Tableを選んでExplainを押した。 結果にはSQLとMySQLの実行計画が並んだ。

orders、type const、key PRIMARY、rows 1だった。rowsはMySQLの予測で、番号条件の主キー利用を申請段階で確認できた。
計画を添付し、 注文参照SQLの計画確認 — 第37回というタイトルで提出した。
承認者も同じ計画を確認する
Demo Approverで申請を開き、 Explain Results タブを選ぶと同じSELECTとorders、PRIMARY、予測1行が表示された。

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

資料を別送・別画面検索せず、SQLと計画が同じ申請にあり照合しやすかった。
承認済みSQLを実行する
開発者が承認済みを開きExecuteを一度押すと、Resultsに 1 Rows selected, in 10 msと表示された。

前のrows 1は予測で、1 Rows selectedは実件数だ。計画確認から承認・実行までつながった。
検討した申請と実行記録を確認する
Query Auditに開発者、SQL Explain Lab、Lab - Explain Review、成功と経路 SQL Requestが表示され、route_lab.ordersとSQLは申請どおりだった。

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

終了後に権限を回収し全体設定をOffへ戻しても、完了申請のExplain Resultsは残っていた。
SQL・理由・計画を一つの申請で検討し意見を残せるため、承認資料を別々にやり取りする手間が減った。
QueryPie Community 11.6.7とMySQL 8.0.42で実習ユーザー・注文を使った。
参考: 実行計画(Explain)の利用 · General設定 · SQL Request
![[第36回] 参照は許可しファイル出力は別に管理する](/assets/content/acp-lab-notes/export-permissions/01.webp)
![[第38回] サーバータグを変えるとグループ構成も変わった](/assets/content/acp-lab-notes/server-tag-groups/01.webp)