日期:2014-05-17 浏览次数:20686 次
-- 1.怎样用SQL语句得到Database文件的大小?(mdf/ldf或ndf)
select file_id,name,type_desc,size*8/1024 'FileSize(MB)' from [数据库名].sys.database_files
-- 2.怎样用SQL语句得到database文件所在磁盘空间的大小及磁盘空闲空间大小?如同数据名称右键--报表--标准报表--Disk usage
select file_id,name,type_desc,size*8/1024 'FileSize(MB)' from [数据库名].sys.database_files
exec xp_fixeddrives
exec xp_cmdshell 'fsutil volume diskfree C:'
-- 3.怎样用SQL语句得到数据库中各表的记录数,预留空间大小 数据空间大小 索引空间大小 空闲空间大小?如同数据名称右键--报表--标准报表--Disk usage by table
exec sp_MSforeachtable "exec sp_spaceused '?'"
-- 4.怎样用SQL语句每个表中记录的条数、预留空间大小、使用空间大小? 如同数据名称右键--报表--标准报表--Disk usage by Partition
exec sp_MSforeachtable "exec sp_spaceused '?'"
create procedure dbo.proc_spaceused
@flag int = 1
as
declare @objname nvarchar(776) = null
declare @id int -- The object id that takes up space
,@type character(2) -- The object type.
,@pages bigint -- Working variable for size calc.
,@dbname sysname
,@dbsize bigint
,@logsize bigint
,@reservedpages bigint
,@usedpages bigint
,@rowCount bigint
/*
** Check to see that the objname is local.
*/
if @objname IS NOT NULL
begin
select @dbname = db_name()
/*
** Try to find&n