SQLパフォーマンス問題を「見える化」するツールを使ってみる

SQLパフォーマンス問題を「見える化」するツールを使ってみる

今回利用するのは、Embarcadero DB Optimizer(以下、DB Optimizer)というSQLパフォーマンスチューニングツールです。

DB Optimizerは、Oracle、MS SQL Server、Sybase、DB2に対応したツールです。これひとつで、それぞれのデータベースにおけるSQLの実行状況を詳細に表示し、チューニング作業を支援してくれます。

DB Optimizerで、「見える化」をサポートするのは、SQLプロファイラと呼ばれるツールです。SQLプロファイラは、データベースを継続的に監視して、そのパフォーマンスに関する統計情報をグラフィカルに表示します。

SQLの実行にかかった時間のうち、CPU、I/O、待機などにかかった時間の詳細を時系列で見ることができるので、問題のあるSQL文やボトルネック箇所を特定できます。

SQLプロファイラを使ってプロファイリングを始めると、ロードグラフと呼ばれるグラフ領域に、色分けされた棒グラフで、実際のSQLの実行にどのような時間を消費したのかがリアルタイムで表示されていきます。このプロファイリングデータは、保存して後で再生することもできるので、疑わしい箇所を後で解析したり、運用環境のプロファイリングデータを記録して、後で別の環境でゆっくり調査するなどといった使い方も可能です。

待ち時間解析では、主にディスクI/OなどのI/O待ち時間、ロックなどに起因する待機などの時間をチェックします。これらの時間を最小化し、いかに効率よくSQLを実行するかが、チューニングのポイントになります。

図2:SQLプロファイラでSQLの実行状況をモニター(クリックで拡大)

セッションデータの詳細を見る

ロードグラフで全体の実行状況を把握したら、次にトップアクティビティセクションと呼ばれる詳細情報にドリルダウンしていきます。ここでは、負荷の原因となる箇所について、より詳しい統計情報を見ることができます。

詳しい統計情報を見ると、具体的にどのSQL文がパフォーマンス上問題になるのか、また、ほかの待機イベントによって実行速度の低下を招いているかなどが分かります。これらの情報を調べていくことで、パフォーマンス改善の方針を立てていくことができます。

このように、DB Optimizerによるプロファイリング作業は、地道でありながら直感的です。通常、膨大なログを調べて問題箇所を特定するような作業が、ビジュアル化されたパフォーマンス情報を見てすぐに行うことができ、また、感覚やカンなどを頼りにせず、網羅的に調査することができます。

実は、この能力は開発の早い段階からSQLパフォーマンス問題の芽を摘むのに大変重要です。

体感できるほどの速度低下は、負荷テストや実際の運用段階のトラブルで発見できますが、そうではない潜在的なボトルネックは、コードの中に潜んだままです。

これらを未然に摘み取っておくには、体感できない違いを見分け、その問題を特定できる嗅覚が必要です。これまで、こうした作業は、経験やカンが頼りでした。「こういった箇所が問題になるんだ」とか「SQLのべからず集」などのノウハウは、どこの開発チームにもあるでしょう。でも、それによってすべての問題をカバーできるほど、現在のシステムはシンプルではありません。また、そうした熟練技術者に依存しすぎる人頼みの品質管理は、開発プロジェクトとして適切ではありません。

DB Optimizerのようなツールを使ってパフォーマンス管理を行うことの重要性は、単に特定のシステムの品質を向上させるだけでなく、チーム全体の品質向上、すなわち底上げの効果にあるのです。

さて、SQLプロファイラで問題のある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