--
-- whole database size
SELECT
(SUM(reserved_page_count)*8192)/1024000 AS [TotalSpace(MB)]
,(SUM([used_page_count])*8192)/1024000 AS [UsedSpace(MB)]
,(SUM([row_count])) AS [RowCount]
FROM sys.dm_db_partition_stats
--
-- size of each partition scheme
select s.name as [partition_scheme]
,sum(ps.[reserved_page_count])*8192/10240000 AS [TotalSpace(MB)]
,sum(ps.[used_page_count])*8192/10240000 AS [UsedSpace(MB)]
,sum([row_count]) AS [RowCount]
from sys.indexes i inner join sys.partition_schemes s
on i.data_space_id = s.data_space_id
inner join
(
SELECT
[object_id]
,[index_id]
,sum([used_page_count]) as [used_page_count]
,sum([reserved_page_count]) as [reserved_page_count]
,sum([row_count]) as [row_count]
FROM [sys].[dm_db_partition_stats]
group by [object_id],[index_id]
) ps
on ps.object_id=i.object_id and ps.index_id=i.index_id
group by s.name
order by 1,2
--
-- size of partitioned table
select
object_schema_name(i.object_id) as [schema]
,object_name(i.object_id) as [object]
,i.name as [index]
,ps.[used_page_count]
,ps.[reserved_page_count]
,ps.[row_count]
,s.name as [partition_scheme]
,f.name as [patition_function]
from sys.indexes i inner join sys.partition_schemes s
on i.data_space_id = s.data_space_id
inner join sys.partition_functions f
on f.function_id = s.function_id
inner join
(
SELECT
[object_id]
,[index_id]
,sum([used_page_count]) as [used_page_count]
,sum([reserved_page_count]) as [reserved_page_count]
,sum([row_count]) as [row_count]
FROM [sys].[dm_db_partition_stats]
group by [object_id],[index_id]
) ps
on ps.object_id=i.object_id and ps.index_id=i.index_id
order by 1,2,3
No comments:
Post a Comment