Azure SQL Database と Azure SQL Managed Instance での監視とパフォーマンス チューニング
適用対象:Azure SQL Database
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 Database と Azure SQL Managed Studio の監視機能の概要を示します。
監視ソリューション | SQL Database | SQL Managed Instance | 資産の監視 | 待ち時間の短縮 | 包括的なデータ |
---|---|---|---|---|---|
メトリックとアラート | はい | はい | はい | はい | いいえ |
Query Performance Insight | はい | いいえ | はい | いいえ | いいえ |
DMV を使用した監視 | はい | はい | いいえ | はい | はい |
クエリ ストアを使用して監視する | はい | はい | いいえ | はい | いいえ |
データベース ウォッチャー (プレビュー) | はい | はい | はい | はい | はい |
データベース ウォッチャー (プレビュー)
データベース ウォッチャーは、詳細なワークロード監視データを収集して、データベースのパフォーマンス、構成、正常性の詳細ビューを提供します。 Azure portal のダッシュボードでは、Azure SQL 資産の単一ウィンドウのビューと、各監視対象リソースの詳細ビューが提供されます。 データは、Azure サブスクリプションの中央のデータ ストアに収集されます。 収集したデータをクエリ、分析、エクスポート、視覚化し、ダウンストリーム システムと統合することができます。
データベース ウォッチャーの詳細については、次の記事を参照してください。
- データベース ウォッチャーを使用して Azure SQL のワークロードを監視する (プレビュー)
- クイック スタート: Azure SQL を監視するデータベース ウォッチャーを作成する (プレビュー)
- データベース ウォッチャーを作成して構成する (プレビュー)
- データベース ウォッチャーのデータ収集とデータセット (プレビュー)
- データベース ウォッチャーの監視データを分析する (プレビュー)
- データベース ウォッチャーに関するよくあるご質問
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 では、データベースやソリューションのパフォーマンスのトラブルシューティングを行い、これらを最大化するのに役立つ、高度な監視およびチューニング機能が提供されます。 使用と分析を行うために、複数の宛先のいずれかに対して、データベース リソース ログとメトリックのストリーミング エクスポートを構成することを選択できます。
Azure portal の外部では、データベース エンジンには、クエリ ストアの や動的管理ビュー (DMV) など、Azure SQL Database と 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 サーバー、およびその単一データベースとプールされたデータベースに対して自動チューニングを有効にすることができます。
注
使用率が非常に低いデータベースは、ポータルに実際の使用量より少なく表示されることがあります。 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 Monitor のメトリックとアラートを使用して Azure SQL Database を監視するに関する記事を参照してください。
注
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 であると表示されます。
メトリックとリソース ログのストリーミング エクスポートを有効にする
診断設定は、リソース ログ カテゴリ (旧称診断ログ) を含む機能です。 Log Analytics、Event Hubs、Azure Storage を含む複数の宛先のいずれかに対する診断テレメトリのストリーミング エクスポートを有効にし、構成できます。
注
Intelligent Insights のリソース ログのカテゴリは、SQLInsights
と呼ばれます。 これは、廃止された SQL Insights 監視ソリューションとは関係ありません。
診断設定を構成して、単一データベース、プールされたデータベース、エラスティック プール、SQL マネージド インスタンス、インスタンス データベースのメトリックおよびリソース ログを次のいずれかの Azure サービスにストリーム配信できます。
Azure Monitor の Log Analytics ワークスペース
Azure Monitor の Log Analytics ワークスペースにメトリックおよびリソース ログをストリーム配信できます。 ここでストリーム配信されたデータは、SQL Analytics (プレビュー) で使用できます。これは、パフォーマンス レポート、アラート、軽減策のレコメンデーションを含むデータベースのインテリジェントな監視機能を提供する、クラウドのみの監視ソリューションです。 Log Analytics ワークスペースにストリーミングされたデータは、収集された他の監視データと組み合わせて分析できます。また、このデータを使用すると、アラートや視覚化などの他の Azure Monitor 機能を使用することもできます。
注
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 でホストされているイベント ファイル ターゲットを使用します。
関連コンテンツ
- 単一データベースとプールされたデータベースのインテリジェント パフォーマンスに関する推奨事項の詳細については、「データベース アドバイザーのパフォーマンスに関する推奨事項」を参照してください。
- データベース ウォッチャーを使用して Azure SQL のワークロードを監視する (プレビュー)
- メトリックとアラートを使用して Azure SQL Database を監視する
- Azure SQL Database を監視する
- Azure Monitor を使用して Azure SQL Managed Instance を監視する