mssql2005 でテーブルのサイズを MB 単位で取得したい場合は、EXEC sp_spaceused 'table' を使用します。
クエリまたは API を使用して、SQL Azure の特定のテーブルが使用する領域を取得する方法はありますか?
mssql2005 でテーブルのサイズを MB 単位で取得したい場合は、EXEC sp_spaceused 'table' を使用します。
クエリまたは API を使用して、SQL Azure の特定のテーブルが使用する領域を取得する方法はありますか?
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 番目のものは同じことを行いますが、データベース内のオブジェクトごとに最大から最小に並べ替えます。
このようにして、より大きなものを上に置くことができます:
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