我有一个名为ABCD
的数据库,其大小为100 GB,未来6个月将达到100%。我必须通知最终用户,数据库将在未来6个月内完全增长。订购额外的存储空间。
在这种情况下,用于检查数据库增长和分析数据库增长趋势的DBCC命令是什么?在6个月之前?
答案 0 :(得分:2)
您可以使用系统目录视图sys.database_files
监控单个数据库文件(日志和数据文件)的大小下面是一个示例,它将创建一个表,然后为每个数据库存储此信息的结果。然后,您可以将数据输出到Excel,以跟踪记录的时间段内的增长情况。你甚至可以预测你的增长率。 p>
IF OBJECT_ID('DatabaseFiles') IS NULL
BEGIN
CREATE TABLE DatabaseFiles
(
ID int identity(1,1) not null primary key,
CreatedDate datetime not null default getDate(),
DatabaseID int not null,
DatabaseName varchar(50) not null,
FileID int not null,
FileName varchar(50) not null,
SizeInMB numeric(12,6),
FilePath varchar(150) not null,
FileType varchar(10) not null
)
END
--Get the current database file size information for each database on the server
EXECUTE sp_msforeachdb
'INSERT INTO DatabaseFiles(DatabaseID,DatabaseName,FileID,FileName,SizeInMB,FilePath,FileType)
SELECT
DB_ID(''?''),
DB_NAME(DB_ID(''?'')),
file_id,
name,
CAST(((SIZE * 8.00)/1024.00) AS DECIMAL(18,2)) AS SizeInMB,
physical_name,
type_desc
FROM [?].sys.database_files '
答案 1 :(得分:0)
select sum(total_pages)*8192 as size_used_in_bytes from ABCD.sys.allocation_units;
监控此查询。它将报告数据库中使用(分配)的总大小。
答案 2 :(得分:0)
如果您想知道最近一个月的数据库增长量,可以在下面找到使用方法。此处DATA%表示驱动器:
SELECT dbname,
SUM(Growth)/1024 as GrowthinGB
FROM [DBMonitoring].[dbo].[FileSizeGrowth]
where
physical_name like 'DATA%'
and sampletime > getdate() - 30
and PrevFileSizeMB <> 0
group by dbname
order by dbname desc