Elastic Pool でリソースの使用状況の取得方法について軽くまとめてみたいと思います。
通常のスタンドアロンデータベースの場合、sys.dm_db_resource_stats / sys.resource_stats から取得を行うことができます。
Elastic Database (可変データベース) の場合も同様に情報を取得することができますが、データの見方が少し異なってきます。
Elastic Database の場合、DTU の上限は固定ではなく可変となります。
Standard の場合、プール内のデータベースの最大の DTU は 100 となります。
冒頭で紹介した DMV のリソース使用率については、最大 DTU に対しての使用率となるようです。
最初に最大値を 100DTU で動作させ、あるタイミングで最大値を 20 DTU に変更した場合の DTU の情報が以下になります。
最初は最大 100DTU の 30% 前後のリソースを使用していたのですが、最大を 20DTU に変更してからは 20DTU の性能の 100% で動作していることが確認できます。
これらのリソース使用状況のメトリックは、PowerShell でも取得することができます。
Create and manage a SQL Database elastic pool with PowerShell (preview)
PowerShell から取得する情報はリソースグループに対してのメトリック情報となり、5 分間隔の情報が 14 日分保存されたものになります。
# DMV と対比するのであれば、sys.resource_stats 相当ですね。
PowerShell から取得した場合は、
- プールのリソース使用状況
- データベースのリソース使用状況
を取得することができますので、全体 / 個別のリソース使用状況を確認できます。
Ignite のセッション資料に
Monitoring and alerting is available on both pool and databases
の記載があり、どのように情報を取得するのかが気になったので調べてみました。