My apologizes for the short question but how can I find out what the size is of SQL Server database?
This would include tables, logs, etc.
This would include tables, logs, etc.
SELECT database_name = DB_NAME(database_id) , log_size_mb = CAST(SUM(CASE WHEN type_desc = 'LOG' THEN size END) * 8. / 1024 AS DECIMAL(8,2)) , row_size_mb = CAST(SUM(CASE WHEN type_desc = 'ROWS' THEN size END) * 8. / 1024 AS DECIMAL(8,2)) , total_size_mb = CAST(SUM(size) * 8. / 1024 AS DECIMAL(8,2)) FROM sys.master_files WITH(NOWAIT) WHERE database_id = DB_ID() -- for current db GROUP BY database_id
-- my query name log_size_mb row_size_mb total_size_mb -------------- ------------ ------------- ------------- 0000000000 512.00 302.81 814.81 -- sp_spaceused database_name database_size unallocated space ---------------- ------------------ ------------------ 0000000000 814.81 MB 13.04 MB
ALTER FUNCTION [dbo].[GetDBSize] ( @db_name NVARCHAR(100) ) RETURNS TABLE AS RETURN SELECT database_name = DB_NAME(database_id) , log_size_mb = CAST(SUM(CASE WHEN type_desc = 'LOG' THEN size END) * 8. / 1024 AS DECIMAL(8,2)) , row_size_mb = CAST(SUM(CASE WHEN type_desc = 'ROWS' THEN size END) * 8. / 1024 AS DECIMAL(8,2)) , total_size_mb = CAST(SUM(size) * 8. / 1024 AS DECIMAL(8,2)) FROM sys.master_files WITH(NOWAIT) WHERE database_id = DB_ID(@db_name) OR @db_name IS NULL GROUP BY database_id
Comment