60

mssql2005 でテーブルのサイズを MB 単位で取得したい場合は、EXEC sp_spaceused 'table' を使用します。

クエリまたは API を使用して、SQL Azure の特定のテーブルが使用する領域を取得する方法はありますか?

4

3 に答える 3

144

Ryan Dunn から http://dunnry.com/blog/CalculatingTheSizeOfYourSQLAzureDatabase.aspx

select    
      sum(reserved_page_count) * 8.0 / 1024 [SizeInMB]
from    
      sys.dm_db_partition_stats

GO

select    
      sys.objects.name, sum(reserved_page_count) * 8.0 / 1024 [SizeInMB]
from    
      sys.dm_db_partition_stats, sys.objects
where    
      sys.dm_db_partition_stats.object_id = sys.objects.object_id

group by sys.objects.name
order by sum(reserved_page_count) DESC

最初のものはデータベースのサイズを MB 単位で示し、2 番目のものは同じことを行いますが、データベース内のオブジェクトごとに最大から最小に並べ替えます。

于 2010-03-09T15:32:14.520 に答える
5

このようにして、より大きなものを上に置くことができます:

 SELECT  sys.objects.name,
            SUM(row_count) AS 'Row Count',
            SUM(reserved_page_count) * 8.0 / 1024 AS 'Table Size (MB)'
    FROM sys.dm_db_partition_stats, sys.objects
    WHERE sys.dm_db_partition_stats.object_id = sys.objects.object_id
    GROUP BY sys.objects.name
    ORDER BY [Table Size (MB)] DESC

ソース

于 2013-10-22T14:42:07.950 に答える