SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SQL Azure でテーブルのサイズを取得

2 comments

System Center Advisor について書いていたのですが、ちょっと気分転換に SQL Azure を触ってみたいと思います。

■SQL Azure でテーブルのサイズを見る方法


オンプレミスの SQL Server の場合は、SSMS で対象のテーブルのプロパティを開くとテーブルのサイズを確認することが可能です。
image

また、標準でテーブル単位のサイズを確認するためのレポートも用意されています。
image

SQL Azure に接続した SSMS では同じ方法で情報を取得することはできません。
テーブルを右クリックしてプロパティは表示することができませんし、
image

レポートもカスタムレポートしか表示されません。
image

Azure の管理ポータルからは DB 別のサイズは確認することができるのですがテーブル単位では確認することができません。
image

テーブル単位のサイズを確認する場合には、以下の情報のように DMV を使用して確認する必要があります。
動的管理ビューを使用した SQL Azure の監視

課金情報に関してはこちらの情報ですね。
SQL Azure の課金情報

TechNet に記載されているものですと非クラスタ化インデックスが取得できませんのでちょっと書き換えて以下のようなクエリを作成してみました。

SELECT
    OBJECT_NAME(sys.indexes.object_id) AS object_name,
    sys.indexes.name,
    sys.indexes.type_desc,
    sys.dm_db_partition_stats.row_count,
    SUM(sys.dm_db_partition_stats.reserved_page_count) * 8.0 / 1024 AS [Size (MB)]
FROM
    sys.dm_db_partition_stats
    LEFT JOIN
    sys.indexes
    ON
    sys.dm_db_partition_stats.object_id = sys.indexes.object_id
    AND
    sys.dm_db_partition_stats.index_id = sys.indexes.index_id
GROUP BY
    sys.indexes.object_id,
    sys.indexes.index_id,
    sys.indexes.name,
    sys.indexes.type_desc,
    sys.dm_db_partition_stats.row_count
ORDER BY
    sys.indexes.object_id,
    sys.indexes.index_id

実行をするとこのような形でテーブル単位 / インデックス単位で件数とサイズを取得することが可能です。
image

オンプレミスの SQL Server の段階から情報をクエリで取得されている方にとってはさほど目新しいことはないかと思いますがメモとして。

Share

Written by Masayuki.Ozawa

4月 30th, 2011 at 7:22 pm

Posted in Windows Azure

Tagged with

2 Responses to 'SQL Azure でテーブルのサイズを取得'

Subscribe to comments with RSS or TrackBack to 'SQL Azure でテーブルのサイズを取得'.

  1. […] http://engineermemo.wordpress.com/2011/04/30/sql-azure-%E3%81%A7%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB… にあるものをベースに、DataSync 関連のテーブルを除去したかったので以下のようなので調査。 […]

    SQL Azure DataSyncを除外して各テーブルのレコード数調査 « Mimori's Algorithms Press

    20 12月 12 at 16:59

  2. […] SQL Azure でテーブルのサイズを取得 […]

    オブジェクトの情報を取得するテーブル等 | SE の雑記

    11 5月 13 at 13:27

Leave a Reply