有什么办法查看数据库大小的增长速度吗
有什么办法查看数据库大小的增长速度吗
比如统计每个月数据库增长了多大
------解决方案--------------------每天看一下数据库文件大小就知道了
帮顶,求高手
------解决方案--------------------create table DB_Size_log
(
dt char(8) default(convert(char(8),getdate(),112)),
MDF_Size bigint,
LDF_Size bigint
)
go
create proc get_size
as
begin
insert into DB_Size_log(mdf_size,ldf_size) --或直接一个字段mdf+ldf
select size/108 from sys.database_files --页数乘以8 除以1024
end
--step 2
declare @maxdt as char(8
select @maxdt=isnull(max(dt)) from db_size_log
select a.dt,b.size-a.size from db_size_log as a
inner join as b
on a.dt=b.dt-1
and a.dt=@maxdt
这是一个思路,不是完整的代码,随便在记事本里写的。稍加修改能用
------解决方案--------------------SQL SERVER应该没提供现成的方法。自己可以写个作业,定时监控数据库大小,自动计算出增长量。数据库大小的计算方法,一是调用存储过程sp_spaceused,不太精确,二是自己写代码,从sysfiles表中查。
参考:http://tech.ddvip.com/2009-09/1252154898130856.html
------解决方案--------------------DECLARE @table TABLE
(
fileid INT,
[fieldgroup] INT,
totalextents BIGINT,
userdextents BIGINT,
NAME NVARCHAR(255),
[filename] NVARCHAR(255)
)
INSERT @table
EXEC('DBCC showfilestats') --查询数据库文件级的空间使用情况,比较精确
SELECT * FROM @table