問題のSQLを修正してみる

DB Optimizerで問題のあるSQLをチューニングするのは、SQLチューナーです。SQLチューナーでは、ヒントインジェクションやインデックス分析、統計分析などを使って、データ取得に使われる実行パスを変更します。

SQLチューナーでは、実際にSQLを実行して複数の候補の中から最も効果のあるチューニング結果を選択できるので、環境やデータによっても異なるパフォーマンスの最適解を見つけ出すことができます。

また、新規にSQL文を入力してチューニング作業を開始できるほか、SQLプロファイラで検出した問題となるSQL文をインポートしてチューニングできます。

チューニングジョブを実行すると、「ケース」と呼ばれる修正候補のSQL文がリストされます。これらのSQLは、同じ結果を導く異なるパスを用いたものです。画面にはこれらの候補の詳細が表示され、その場で実行してみることもできます。

その結果、その場で最も効果的な「ケース」を、実際のデータを参照しながら選択することができます。

図3:実際の実行結果を参照しながら修正候補を選択できるSQLのチューニング(クリックで拡大)

SQLパフォーマンスの見える化による3つの効果

SQLパフォーマンス問題を「見える化」することによって、直接的に3つの効果を期待できます。

パフォーマンス問題の早期発見
開発段階から顕在化していないSQLパフォーマンスを、ビジュアルツールを使って発見することができます。結果的に、SQLのコード品質を高め、テスト段階、運用段階でのトラブルを軽減でき、結果的に大幅なコスト削減に結びつきます。
問題の解決に最適な選択が可能
選択した解決策が最適だったかどうか、比較をしてみないと分かりません。しかし、多くの場合両方を試すのは困難です。SQLチューナーを使うと、実際に実行した結果を簡単に比較できるので、容易に最適解を選ぶことができます。
チームメンバーのスキルの底上げが可能
ベテランエンジニアに頼らずとも、SQLのチューニングが可能です。パフォーマンスチューニングの指南書を読破しなくても、どこに問題があるのか、ピンポイントで理解できるので、ツールの助けを借りながら実地で経験を積んでいくことができます。

まとめ

SQLパフォーマンス問題の「見える化」は、パフォーマンス問題の検出を、膨大なログと格闘するような文字情報を頼りに問題箇所をなんとか探し出すといった、これまでの原始的な手法から、直感的なグラフィカル情報によってすぐに問題を認識できる洗練された方法へと変革します。

また、問題の解決方法も、従来の経験やカンを頼りにしたやり方から、ツールの力を借りて正確に分析、検証できるようになり、確実性と効率性が格段に上がります。ある実例では、これまでの手法で16時間かかっていたSQLパフォーマンスチューニングが、ツールの導入によって2時間に削減できたといいます。

「見える化」の意義は、治療に例えると分かりやすいでしょう。

健康診断では、からだ全体をそれぞれ検査していきます。そこでは、レントゲンや超音波を使って、実際に問題がないかを目で確認していきます。もし、これらの診断が問診だけだったとすれば、受診者も不安でしょう。

問題が見つかったときには、より細かい検査を行います。これによって具体的な治療方針を決め、実施していきます。もちろん治療を行った後には再び検査を行い、完治したことを確認します。

SQLのパフォーマンス問題の解決に、これまでこのような手法が採られてこなかったことが不思議でなりません。問題の発見、分析、解決にグラフィカルツールを用いることで、レントゲンなどと同じように、問題の「見える化」が可能になるのです。

さて、次回は、データベースの設計に起因するパフォーマンス問題を「見える化」する方法について説明します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30