List All databases by Size and Available space SQL SERVER 2008 R2 -
i'm sysadmin no means dba person, , such i'd ask help.
i have 2 questions. first, how query sql server return list of databases (without default ones master etc..) , list db size , available space (preferably in gb):
what need know if "space available" affects .bak file size of respective db.
hoping quick response. in advance.
david sankovsky.
right, after tweaking , rtfm-ing came this:
if exists( select 1 tempdb.dbo.sysobjects id = object_id('tempdb.dbo.#dbobj') ) drop table #dbobj create table #dbobj ( [db] sysname , reservedpages int , usedpages int , pages int ) exec sys.sp_msforeachdb ' use [?] insert #dbobj ( [db] , reservedpages , usedpages , pages ) select db_name() , pg.reservedpages , pg.usedpages , pg.pages ( select reservedpages = sum(a.total_pages) , usedpages = sum(a.used_pages) , pages = sum( case when it.internal_type in (202, 204, 207, 211, 212, 213, 214, 215, 216, 221, 222) 0 when a.[type] != 1 , p.index_id < 2 a.used_pages when p.index_id < 2 a.data_pages else 0 end ) sys.partitions p join sys.allocation_units on p.[partition_id] = a.container_id left join sys.internal_tables on p.[object_id] = it.[object_id] ) pg' select d.name , total_size_mb = data.row_size_mb + data.log_size_mb , data.log_size_mb , data.row_size_mb , unused_size_mb = cast((do.reservedpages - do.usedpages) * 8. / 1024 decimal(10,2)) , unallocated_space_gb = cast(case when data.row_size >= do.reservedpages (data.row_size - do.reservedpages) * 8. / 1024 /1024 else 0 end decimal(10,2)) ( select df2.database_id , log_size_mb = cast(df2.log_size * 8. / 1024 decimal(10,2)) , row_size_mb = cast(df2.row_size * 8. / 1024 decimal(10,2)) , df2.log_size , df2.row_size ( select df.database_id , log_size = sum(case when df.type_desc = 'log' df.size end) , row_size = sum(case when df.type_desc = 'rows' df.size end) sys.master_files df group df.database_id ) df2 ) data join sys.databases d on data.database_id = d.database_id join #dbobj on do.db = d.name order data.row_size_mb + data.log_size_mb desc that seems job done. feel free share , everyone. sql link
Comments
Post a Comment