はじめに
SQLクエリ最適化ツールは、さまざまなクエリプランを分析し、どれが最高のパフォーマンスを提供するかを確認することで、クエリを実行するための最良の方法を決定します。 。結果を取得した後、クエリ最適化ツールは最も効率的なクエリプランを使用します クエリを実行します。
パフォーマンスメトリクスは次のとおりです。
- 実行
- クエリ期間
- CPU時間
- 論理的および物理的な読み取り
この記事には、13の最高のSQLクエリ最適化ツールがリストされています 、だからあなたはどちらがあなたに合っているかを選択します。
EverSQLクエリオプティマイザー
EverSQLは、クエリの実行を高速化することでデータベースサーバーのパフォーマンスを向上させるクエリオプティマイザです。
EverSQLの注目すべき機能は次のとおりです。
- クエリの自動書き換え。
- コードの比較とクエリの書き換え後のメモの変更。
- クエリ速度を向上させるためのインデックス作成の推奨事項。
- スキーマを追加した後の高度な最適化オプション。
次の画像は、EverSQLのコード比較機能を示しています。
自動クエリ書き換え この機能はクエリの最適化を自動化し、EverSQLはクエリを書き直した後のコード比較と変更メモも提供します。 コード比較 この機能により、ユーザーはクエリのパフォーマンスを向上させるために何が変更されたかを確認できます。
さらに、EverSQLはインデックス作成の推奨事項を提供します 複数のクエリを同時に実行します。このツールは、MySQL、MariaDB、およびPerconaDBデータベース管理システム(DBMS)をサポートしています。
無料試用版は14日間続き、50のクエリ最適化を提供します。
APEXSQLプラン
APEXSQLプランクエリ最適化ツールを使用すると、ユーザーは実行プラン図を作成できます。このツールを使用すると、データフロー情報を使用して、クエリの実行のサイズを変更、変更、およびリアルタイムで監視できます。
その他の機能は次のとおりです。
- 実行プランの各操作のプロパティの詳細を管理します。
- サブ要素(ノード、コネクタなど)の構成。
- 実行計画の各データフローの詳細を管理および確認します。
以下の画像は、APEXSQLプランUIとクエリ実行プランの例です。
このツールは、欠落しているデータベースインデックスを特定することができます。 実行計画セクションでそれらを再作成します。
ただし、APEXSQLプランはSQLサーバーのみをサポートし、書き換えることはできません 既存のクエリ。
SQLAzureQueryパフォーマンスインサイト
Azure Query Performance Insightは、単一データベースとプールされたデータベースのクエリ分析を提供します。このツールは、ユーザーのワークロードで最も多くのリソースを消費するクエリを特定するのにも役立ちます。結果により、ユーザーは最適化が必要なクエリを特定できます。
Azure Query Performance Insightは、次のようないくつかの機能を提供します。
- データベースのCPU、IO、およびメモリ使用量の組み合わせとして測定されるデータベースリソース消費量(DTU)の洞察。
- リソースを最も消費するクエリに関する詳細情報(CPU、期間、実行回数など)。
- コードやリソースの使用履歴など、クエリの詳細の検査。
- パフォーマンスの推奨事項に関する手動の注釈。
上の画像は、SQLAzureでのクエリパフォーマンスの詳細を示しています。
SQL Azure Query Performance InsightsはAzureのみをサポートし、クエリの書き換えのオプションは付属していません。これを使用するための前提条件は、クエリストアを有効にすることです。
Toad SQL Optimizer for Oracle
Toad SQL Optimizer for Oracleは、Oracleデータベースをサポートしています。このツールはアルゴリズムを使用して代替メカニズムを見つけます 既存のSQLステートメントを改善し、ユーザーが最良の代替案を選択できるようにします。
ToadforOracleの主な機能は次のとおりです。
- プロファイラー機能により、クエリの実行時間を含むクエリのパフォーマンスを測定できます。
- 分析のグラフ表示。パフォーマンスのボトルネックなどの重大な問題を示します。
- チームコーディング機能。ユーザーがコラボレーション環境でチームを組むことができ、スムーズな開発エクスペリエンスを実現します。
次の画像は、ToadforOracleでのクエリ最適化プロセスを示しています。
Toad for Oracleには、機能ごとに価格が異なるいくつかのバージョンがあり、30日間の無料トライアルが含まれています。
SQLDiagnosticManager用のSQLクエリチューナー
SQLクエリチューナーは、SQL診断マネージャーのアドオンです。このツールを使用すると、ユーザーはデータベースプロファイリングと待機時間分析を介して問題のあるクエリを特定し、結果をグラフィカルに表すことができます。
チューナーは、SQLクエリチューニングウィザードを介してチューニングの推奨事項を自動的に生成します シミュレートされた本番環境での負荷テストを介してクエリのパフォーマンスを検証します。
SQLクエリチューナーのいくつかの機能は次のとおりです。
- 使用済み、未使用、および欠落しているインデックスの色分けされた分析。
- 可能なSQLクエリの書き換えと最良の代替案を生成します。
- クエリのパフォーマンスへの影響を表す視覚的なクエリ調整図。
- SQLステートメントで使用されるテーブルインデックス、制約、およびJOINSを表示するテーブル統計。
ユーザーは同時に複数回クエリを実行できます シミュレートされた環境でそれらがどのように動作するかを確認し、本番環境でクエリをテストするリスクを回避します。
この画像は、SQL分析とSQLクエリチューナーの視覚的なクエリ調整図を示しています。
この製品には14日間の試用版が付属しており、ユーザーはSQLDiagnosticManagerを購入することもできます。
SolarWindsデータベースパフォーマンスアナライザー
SolarWinds Database Performance Analyzerには、パフォーマンス監視と組み込みのクエリチューナーが付属しています。 クエリ最適化用。
アナライザーツールを使用すると、ユーザーはダッシュボードを介してパフォーマンス、クライアントマシン、ユーザー、およびアプリケーションを監視し、パフォーマンスと異常を表し、どのSQLクエリに焦点を当てるかを特定できます。
上の画像は、SolarWindsAnalyzerでの待機時間を色分けしたグラフを示しています。
SolarWindsAnalyzerの機能の一部は次のとおりです。
- トップネットワークの状態とパフォーマンスを表示するSQLを待機します。
- 待機時間、チューニング、CPU、メモリ、ディスク統計などのデータベースステータス。
- 各情報カテゴリの色分けされたグラフ。
SolarWinds Analyzerは、Azure SQLデータベース、MySQL、Aurora、ASE、Oracle、MariaDB、およびIBMDb2をサポートしています。このツールには、完全に機能する14日間の無料トライアルが付属しています。
PaesslerPRTGネットワークモニター
Paessler PRTGネットワークモニターツールは、Microsoft SQL、MySQL、Oracle SQL、およびPostgreSQLデータベースを監視します。 PRTG Network Monitorを使用すると、SQLクエリの監視と最適化が簡単になり、SQLクエリリクエストの実行に必要な時間が測定されます。
主な機能は次のとおりです。
- クエリの実行時間、ネットワークの状態、およびクエリのパフォーマンスの問題を表示するダッシュボード。
- 個々のデータベースを監視するための事前構成されたSQLセンサー。
- パフォーマンスの問題についてユーザーに通知するしきい値ベースのアラートシステム。
上の写真は、トリガーされたアラーム、使用可能なセンサー、およびその他のメトリックのPTRGダッシュボードの概要を示しています。
アラートシステムはユーザーにすぐに通知します 問題を認識した後、ユーザーは通知の受信方法を選択できます。
PRTG Network Monitorには無料試用版が付属しており、有料版ではセンサーの数とサーバーのインストール数が異なります。
SentryOne SQL Sentry
SentryOneは、パフォーマンスの問題のトラブルシューティングに焦点を当てたデータベースパフォーマンス監視ツールです。その機能の一部は次のとおりです。
- クエリの実行速度が遅い場合に通知を受け取るためのアラートしきい値。
- 指定された最小期間を超えるすべてのクエリを一覧表示する上位SQL。
- 実行計画図により、ユーザーはパフォーマンスに影響を与える最適化されていないクエリを見つけることができます。
- データベースのデッドロックの概要を示すデッドロック分析。
- ブロックプロセスの階層を表示するブロック検出。
事前構成されたベースラインは、ユーザーがリソースのボトルネック、ユーザー接続、バッチ、トランザクション、およびSQLサーバーの待機やCPUの待機などを監視するためのその他のさまざまなメトリックを特定するのに役立ちます。
アラートシステムはユーザーに通知します クエリの実行が遅い場合。
上の画像は、アラート、CPUとメモリの使用量などをグラフで表した、SentryOneのスタートページを示しています。
SentryOneを使用すると、ユーザーはクエリ調整プロセスを自動化できます。 しきい値条件がトリガーされたときに実行するデータベースアクションを設定します。
このツールには、2週間の無料試用版と、機能の数が異なるいくつかの有料版が付属しています。
Redgate SQL Monitor
Redgate SQL Monitorは、カスタマイズ可能なアラート、カスタムレポート、およびSQLパフォーマンスを監視するためのダッシュボードを備えたクエリ最適化ツールです。
主な機能は次のとおりです。
- 15秒間隔で更新される詳細なダッシュボード。CPU、メモリ、ディスク使用量、読み取りと書き込み、データベースの待機時間が表示されます。
- カスタマイズ可能なアラートシステム。ユーザーは、標準のマシン、SQL Server、およびデータベースのメトリックに加えて、カスタムのメトリックアラートしきい値を設定できます。
- クエリのパフォーマンスの問題を解決するためのヘルプ。
パフォーマンスの問題が発生すると、RedgateSQLMonitorは原因の特定に役立つ追加情報を提供します。
上の画像は、いくつかの監視対象サーバーの概要を示すRedgate SQLMonitorUIを示しています。
アラートシステムには、40を超えるテンプレートが含まれています ユーザーは、パフォーマンスの問題、クエリパフォーマンスの低下、またはプロセスのブロックに関するアラートを受信するようにカスタマイズできます。
RedgateのSQLモニターには、14日間の無料試用版と、さまざまな機能やサポートされているサーバーの数など、いくつかの有料バージョンが付属しています。
Idea DB Optimizer
Idera DB Optimizerは、SQL Server、Oracle、DB2、Sybaseと互換性のあるデータベースオプティマイザーであり、中規模企業に最適です。 。
このツールは、データベースクエリのパフォーマンスの問題を特定し、クエリ最適化の推奨される変更を提供します。
以下の画像は、IderaDBOptimizerでのグラフィカルなクエリ分析を示しています。
その他のIderaDBOptimizerの機能は次のとおりです。
- パフォーマンスのボトルネックを監視します。
- 待機時間分析の視覚的表現。
- 代替SQLクエリ実行パス。
- 推奨される変更に従ってクエリを変更するためのワンクリック関数。
DB Optimizerには、ユーザーがその機能をテストできる14日間の無料トライアルが付属しています。
DbForge Studio for MySQL
DbForge Studioは、パフォーマンスを監視し、SQLクエリを調整するためのさまざまなサーバー管理ツールを備えたクエリ最適化ツールです。
その機能の一部は次のとおりです。
- クエリビルダーおよびプロファイラー、MySQLクエリを調整し、クエリのパフォーマンスの問題を調査するためのクエリ最適化ツール。
- クエリを入力するときにシステムをオートコンプリートします。
- クエリコードを検査または作成するためのコードエクスプローラー。
- パフォーマンスの問題に関するフィードバックをチームに送信するためのレポートデザイナー。
- インデックスの断片化を解決するためのインデックスマネージャー。
以下の画像は、クエリを最適化するためのDbForgeStudioクエリプロファイラーUIを示しています。
DbForge Studioは、 SQLフォーマット、SQLスニペット、およびコードナビゲーションを提供することにより、クエリのパフォーマンスを監視し、クエリを最適化するのに役立ちます。 クエリ管理を容易にします。
このツールには、無料試用版と3つの有料バージョン(Standard、Professional、Enterprise)が付属しています。
AppOptics APM
AppOpticsAPMはクラウドベースです データベース最適化ユーティリティを備えたパフォーマンス監視ツール。クエリのパフォーマンスの問題の根本的な原因を特定し、ユーザーがそれらを解決するのに役立ちます。
AppOptics APMフォーカスは、MySQL、Microsoft SQL Server、Oracle、Postgres、およびApacheデータベース管理システムをサポートします。
AppOpticsインフラストラクチャ監視ダッシュボードの例を次に示します。
その機能の一部は次のとおりです。
- 特定のクエリのパフォーマンスが低下し、結果を取得するのに長い時間がかかる理由を調査します。
- インデックス付けが必要な非効率的な結合と列のフィルタリング。
- クエリとデータベースの効率的な相互作用を保証するための分析エンジン。
- ホスティングタイプ(オンサイト、リモート、クラウド)に関係なくデータベースを分析します。
このソフトウェアには、14日間の無料トライアルまたは有料の年間サブスクリプションが付属しています。
Microsoft SQL Server Management Studio(SSMS)
Microsoft SMSSは、MicrosoftSQLServer用の無料のリレーショナルデータベースツールです。 Studioには、クエリ最適化のユーティリティであるSQL Serverデータベースエンジンチューニングアドバイザー(DTA)が付属しています。
DTAはクエリのパフォーマンスを監視し、インデックスとパーティションクエリを追加してクエリを最適化して、パフォーマンスの問題を解決し、実行時間を短縮します。
次の画像は、SQLServerStudioのデータベースエンジンチューニングアドバイザーを示しています。
Studioは、Windows 10、8、8.1、7、2012、および2008R2で使用できます。 SMSSは無料で使用できるため、中小企業に最適です。このツールは優れたデータレポートを提供しますが、このリストにある他のSQLサーバー管理ツールほど高度ではありません。