【要約】Codex + Oracle DB SkillsでOracle Databaseの実行計画レビューをしてみてみた [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者がOracle Databaseの実行計画を解析する際、実務知識の不足により性能低下を見逃すリスクがある。エンタープライズ環境では、単なるSQL生成だけでなく、深いドメイン知識が求められるためである。具体的には以下の課題がある。
- ・実行計画におけるPredicate Information(access/filter)の正確な判別。
- ・関数適用(UPPER, TO_CHAR等)による索引利用の阻害への気づき。
- ・AIエージェントにDB操作をさせる際の、接続情報の漏洩リスク。
// Approach
筆者は、AIエージェントに専門知識を注入し、安全にDB操作を行う検証を行った。ドメイン知識の補完と、セキュリティを両立させる手法を採用している。
- ・Codexに
oracle-db-skills-jaをインストールし、専門知識を補完した。 - ・SQLclの保存済み接続(
conn -savepwd)を利用し、AIにパスワードを渡さず接続した。 - ・関数適用により索引利用を阻害する「意図的な低速SQL」を用意した。
- ・
DBMS_XPLAN.DISPLAYで取得した実行計画をCodexに渡し、改善案を求めた。
// Result
AIは、列に関数を適用することで索引が
filter条件に格下げされる問題を正確に特定した。実行計画の構造的な改善をAIが導き出せることを実証している。- ・改善案として、列に関数をかけない「SARGable」なSQLへの書き換えを提示した。
- ・書き換え後、
INDEX RANGE SCANがaccess条件として機能することを確認した。 - ・小規模データではコスト差は僅かだが、実行計画の読み解き精度は極めて高い。
Senior Engineer Insight
> AIにドメイン知識を「Skill」として注入する手法は、開発体験を劇的に向上させる。特に、DBAの知見をMarkdown化して共有することで、レビュー品質の底上げが可能だ。ただし、本番環境への適用には、AIの提案を鵜呑みにせず、必ず人間が実行計画のコストと統計情報を検証するプロセスが必須である。自動化の恩恵を受けつつ、最終的な判断は人間が行う「Human-in-the-loop」の運用が現実的である。