T-SQLでSQL Azureの課金額を取得する方法
SQL Azureで提供されている2つの動的管理ビュー(sys.database_usage と sys.bandwidth_usage)を使用して、アカウントの稼働状況を確認することができます。
参考値として利用し、実際の課金額は別途オンラインポータルで確認してください。
次のクエリは、今月、自分のサーバにある全てのデータベース使用料を表示します。
SELECT SKU as "種類",
SUM ( CASE WHEN USAGE.SKU = ‘Web’
THEN (Quantity * 979.02/31)
WHEN USAGE.SKU = ‘Business’
THEN (Quantity * 9799.02/31)
END ) AS "費用(円)"
FROM sys.Database_Usage USAGE
WHERE datepart(yy, TIME) = datepart(yy, GetUTCDate())
AND datepart(mm, TIME) = datepart(mm, GetUTCDate())
GROUP BY SKU
Master DBに接続している時に、上のクエリを実行することができます。実行結果は以下のようになります。
SQL Azureの使用量は、ストレージ使用料だけでなく、データの転送量にも課金されます。
SELECT USAGE.Time_Period as "オン/オフピーク",
USAGE.Direction as "送受信",
CASE WHEN USAGE.Direction = ‘Egress’
THEN 14.70 * USAGE.BandwidthInKB/(1024*1024)
WHEN USAGE.DIRECTION = ‘Ingress’
THEN 9.80 * USAGE.BandwidthInKB/(1024*1024)
END AS "費用(円)"
FROM (
SELECT Time_Period,
Direction,
SUM(Quantity) AS BandwidthInKB
FROM sys.Bandwidth_Usage
WHERE datepart(yy, TIME) = datepart(yy, GetUTCDate())
AND datepart(mm, TIME) = datepart(mm, GetUTCDate())
AND class = ‘External’
GROUP BY Time_Period, Direction
) AS USAGE
この投稿は、Billing Numbers Directly From Transact-SQL – TechNet Articles – Home – TechNet Wikiを意訳したものです。