Azure SQL Database と Azure SQL Managed Instance での監視とパフォーマンス チューニング
適用対象: Azure SQL データベース Azure SQL Managed Instance
Azure SQL Database と Azure SQL Managed Instance 内のデータベースのパフォーマンスを監視するには、まず、特定のサービス レベルとパフォーマンス レベルの選択時に選択したデータベース パフォーマンスのレベルを基準にして、ワークロードで使用される CPU および IO リソースを監視します。 これを実現するために、Azure SQL Database と Azure SQL Managed Instance では、Azure portal 内で表示できる、または次のいずれかの SQL Server 管理ツールを使用して表示できるリソース メトリックを出力します:
- Visual Studio Code に基づくAzure Data Studio。
- Microsoft Visual Studio に基づく SQL Server Management Studio (SSMS)。
次の表に、Azure SQL データベース と Azure SQL Managed Studio の監視機能の概要を示します。
ソリューションの監視 | SQL Database | SQL Managed Instance | 資産の監視 | 待ち時間の短縮 | 包括的なデータ |
---|---|---|---|---|---|
メトリックとアラート | はい | あり | あり | はい | いいえ |
Query Performance Insight | あり | いいえ | はい | いいえ | いいえ |
DMV を使用した監視 | あり | はい | いいえ | はい | はい |
クエリ ストアを使用して監視する | あり | はい | いいえ | はい | いいえ |
Database Watcher (プレビュー) | はい | あり | あり | あり | はい |
Database Watcher (プレビュー)
Database Watcher は、データベースのパフォーマンス、構成、正常性の詳細ビューを提供するために、ワークロード監視データを詳細に収集します。 Azure portal のダッシュボードでは、Azure SQL 資産の単一ウィンドウ ビューと、各監視対象リソースの詳細ビューが提供されます。 データは、Azure サブスクリプションの中央データ ストアに収集されます。 収集したデータのクエリ、分析、エクスポート、視覚化を行い、ダウンストリーム システムと統合することができます。
Database Watcher の詳細については、以下の記事を参照してください。
- Database Watcher を使用して Azure SQL ワークロードを監視する (プレビュー)
- クイック スタート: Azure SQL を監視する Database Watcher を作成する (プレビュー)
- Database Watcher の作成と構成 (プレビュー)
- Database Watcher のデータ コレクションとデータセット (プレビュー)
- Database Watcher の監視データの分析 (プレビュー)
- Database Watcher に関するよくあるご質問
Azure portal のデータベース アドバイザー
Azure SQL Database には、パフォーマンスを向上させるために、インテリジェントなパフォーマンス チューニングの推奨設定と自動チューニング オプションを提供するデータベース アドバイザーが多数用意されています。
また、Query Performance Insight では、単一データベースとプールされたデータベースの CPU と IO の使用率が最も高いクエリについての詳細が表示されます。
- Query Performance Insight は、Azure SQL Database の [インテリジェント パフォーマンス] の [概要] ウィンドウの Azure portal で使用できます。 自動的に収集された情報を使用してクエリを特定し、ワークロードのパフォーマンスの最適化を開始します。
- 回帰を防ぐためにクエリ実行プランを強制したり、ワークロード パターンに基づいて非クラスター化インデックスを作成および削除したりするなど、これらのレコメンデーションを自動的に実装するように 自動チューニング を構成することもできます。 自動チューニングは、Azure SQL Database の [インテリジェント パフォーマンス] の [概要] ウィンドウの Azure portal でも使用できます。
Azure SQL Database と Azure SQL Managed Instance では、データベースやソリューションのパフォーマンスのトラブルシューティングを行い、これらを最大化するのに役立つ、高度な監視およびチューニング機能が提供されます。 使用と分析を行うために、複数の宛先のいずれかに対して、データベース リソース ログとメトリックのストリーミング エクスポートを構成することを選択できます。
Microsoft Azure portal の外部では、データベースエンジンは、クエリ ストアや動的管理ビュー (DMV) など、Asure SQL データベースと SQL Managed Instance によって使用される独自の監視機能と診断機能が用意されています。 Azure SQL Database とAzure SQL Managed Instance のさまざまなパフォーマンスの問題を監視するスクリプトについては、DMV を使用した監視に関する説明を参照してください。
監視と診断テレメトリ
次の図は、Azure SQL 製品によって生成されたすべてのデータベース エンジン、プラットフォーム メトリック、リソース ログ、および Azure アクティビティ ログ、それらの処理方法、および分析のために表示する方法の詳細を示してます。
Azure portal で Azure SQL を監視および調整する
Azure portal では、Azure SQL Database と Azure SQL Managed Instance により、リソース メトリックの監視が提供されます。 Azure SQL Database はデータベース アドバイザーを提供し、Query Performance Insight はクエリ チューニングの推奨設定とクエリ パフォーマンスの分析情報を提供しています。 Azure portal では、論理 SQL サーバー、およびその単一データベースとプールされたデータベースに対して自動チューニングを有効にすることができます。
Note
使用率が非常に低いデータベースは、ポータルに実際の使用量より少なく表示されることがあります。 double 値を最も近い整数値に変換する場合のテレメトリ生成方法が理由で、0.5 未満の特定の使用量は 0 に丸められます。これにより、生成されたテレメトリの細分性は低下します。 詳細については、「使用率が低いデータベースおよびエラスティック プールのメトリックの 0 への丸め処理」を参照してください。
Azure SQL Database と Azure SQL Managed Instance のリソースの監視
Azure portal 内の [メトリック] ビューでは、さまざまなリソース メトリックをすばやく監視できます。 これらのメトリックを使用すると、データベースが CPU、メモリ、IO、またはストレージ リソースの制限に近づいているかどうかを確認できます。 DTU、CPU、または IO 使用率が高い場合は、ワークロードにより多くのリソースが必要であることを示している可能性があります。 最適化が必要なクエリを示している場合もあります。 Azure SQL Database と Azure SQL Managed Instance でサポートされるメトリックについては、Microsoft.Sql/servers/databases、Microsoft.Sql/servers/elasticPools、Microsoft.Sql/managedInstances を参照してください。
Azure SQL Database で推奨されるアラート ルールのセットについては、「メトリックとアラートを使用して Azure SQL Database を監視する」を参照してください。
Note
Azure portal のストレージ関連のメトリック (使用されたデータ スペースなど) は、2 の累乗の値で報告されますが、10 の累乗の単位を使用します。 たとえば、1 MB (メガバイト) のストレージ領域は、1,000,000 バイトではなく 1,048,576 バイトを指します。 2 の累乗の値に使用される新しい単位は、KiB、MiB、GiB などです。データベース エンジン内で従来から確立されている使用法との互換性と一貫性を確保するために、Azure SQL ストレージ メトリックでは、KB (キロバイト)、MB (メガバイト)、GB (ギガバイト) などの古い単位を使用します。
Azure SQL Database 内のデータベース アドバイザー
Azure SQL Database には、単一データベースとプールされたデータベースのパフォーマンス チューニングに関する推奨設定を提供するデータベース アドバイザーが含まれています。 これらの推奨設定は、Azure portal と PowerShell を使用して入手できます。 また、これらのチューニング推奨設定を Azure SQL Database で自動的に実装できるように、自動チューニングを有効にすることもできます。
Azure SQL Database 内の Query Performance Insight
Query Performance Insight では、単一データベースとプールされたデータベースに対して実行するクエリのうち、最も負荷が高いものと実行時間が長いもののパフォーマンスが Azure portal に示されます。
使用率が低いデータベースおよびエラスティック プールのメトリックの 0 への丸め処理
2020 年 9 月以降、使用率が非常に低いデータベースは、ポータルに実際の使用量より少なく表示されることがあります。 double 値を最も近い整数値に変換する場合のテレメトリ生成方法が理由で、0.5 未満の特定の使用量は 0 に丸められます。これにより、生成されたテレメトリの細分性は低下します。
次に例を示します。1 分間に 4 つのデータ ポイント 0.1、0.1、0.1、0.1 があると考えてみましょう。これらの低値は 0、0、0、0 に切り捨てられ、平均は 0 であると示されます。 データ ポイントのいずれかが 0.5 より大きい場合は、0.1、0.1、0.9、0.1 となり、これらは 0、0、1、0 に丸められ、平均は 0.25 であると表示されます。
メトリックとリソース ログのストリーミング エクスポートを有効にする
診断設定は、リソース ログ カテゴリ (旧称、診断ログ) を含む機能です。 ログ分析、Event Hubs、Azure Storage など、複数の宛先のいずれかに対する診断テレメトリのストリーミング エクスポートを有効にして構成できます。
Note
Intelligent Insightsのリソース ログ カテゴリは、SQLInsights
と呼ばれます。 これは、SQL Insights (プレビュー) 監視ソリューションとは関係ありません。
診断設定を構成して、単一データベース、プールされたデータベース、エラスティック プール、SQL Managed Instance、インスタンス データベースのメトリックおよびリソース ログのカテゴリを次のいずれかの Azure リソースにストリーム配信できます。
Azure Monitor の Log Analytics ワークスペース
Azure Monitor の Log Analytics ワークスペースにメトリックおよびリソース ログをストリーム配信できます。 ここでストリーム配信されたデータは、SQL Analytics (プレビュー) で使用できます。これは、パフォーマンス レポート、アラート、軽減策のレコメンデーションを含むデータベースのインテリジェントな監視機能を提供する、クラウドのみの監視ソリューションです。 Log Analytics ワークスペースにストリーミングされたデータは、収集された他の監視データと組み合わせて分析できます。また、このデータを使用すると、アラートや視覚化などの他の Azure Monitor 機能を使用することもできます。
Note
Azure SQL Analytics (プレビュー) は Azure Monitor との統合です。ここでは多くの監視ソリューションがアクティブな開発ではなくなりました。
Azure Event Hubs
メトリックとリソース ログは、Azure Event Hubs にストリーム配信できます。 診断テレメトリをイベント ハブにストリーム配信して、次の機能を提供します。
サード パーティ製のロギングおよびテレメトリ システムにログをストリーミングする
すべてのメトリックとリソース ログを 1 つのイベント ハブにストリーミングして、ログ データをサード パーティの SIEM またはログ分析ツールにパイプします。
カスタムのテレメトリおよびログ プラットフォームを構築する
高い拡張性の公開サブスクライブを特長とするイベント ハブを使用することで、メトリックとリソース ログをカスタム テレメトリ プラットフォームに柔軟に取り込むことができます。 詳細については、Azure Event Hubs に関するページを参照してください。
データを Power BI にストリーム配信してサービスの正常性を表示する
Event Hubs、Stream Analytics、Power BI を使用して、診断データを Azure サービスのほぼリアルタイムの分析情報に転換します。 このソリューションの詳細については、「Stream Analytics と Power BI:ストリーミング データのリアルタイム分析ダッシュボード」を参照してください。
Azure Storage
メトリックとリソース ログを Azure Storage にストリーム配信します。 Azure ストレージを使用して、前述の 2 つのストリーミング オプションの何分の 1 かのわずかなコストで、膨大な量の診断テレメトリをアーカイブできます。
拡張イベントを使用する
さらに、拡張イベントを使用して、SQL Server、Azure SQL Database、およびAzure SQL Managed Instance の高度な監視とトラブルシューティングを行うことができます。 拡張イベントは、"トレース" ツールとイベント アーキテクチャであり、SQL トレースよりも優れています。これにより、ユーザーはパフォーマンスの問題のトラブルシューティングや特定に必要なデータをできるだけ多くまたは少なく収集しながら、進行中のアプリケーション パフォーマンスへの影響を軽減できます。 拡張イベントは、非推奨となった SQL Trace と SQL Server Profiler の機能に置き換わるものです。 Azure SQL Database の拡張イベントの使用の詳細については、Azure SQL Database での拡張イベントに関するページを参照してください。 Azure SQL Database と SQL Managed Instanceで、Azure Blob Storage でホストされているイベント ファイル ターゲットを使用します。
関連するコンテンツ
- 単一データベースとプールされたデータベースのインテリジェント パフォーマンスに関する推奨事項の詳細については、「データベース アドバイザーのパフォーマンスに関する推奨事項」を参照してください。
- Database Watcher を使用して Azure SQL ワークロードを監視する (プレビュー)
- メトリックとアラートを使用して Azure SQL Database を監視する
- Azure SQL データベースの監視
- Azure Monitor を使用して Azure SQL Managed Instance を監視する