我有一个名为ABCD的数据库,大小为100 GB,它将在接下来的6个月内100%满。我必须通知最终用户,数据库将在未来6个月内完全增长,并下一个额外的存储订单。
在此场景中,DBCC命令用于检查数据库增长并分析数据库增长趋势?在6个月之前?
发布于 2011-06-17 23:01:06
您可以使用系统目录视图sys.database_files监视各个数据库文件(日志文件和数据文件)的大小
下面是一个示例,它将创建一个表,然后为每个数据库存储此信息的结果。然后,您可以将数据输出到Excel,以跟踪记录的一段时间内的增长。你甚至可以预测你的增长率。
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 '发布于 2011-06-18 00:42:32
sys.allocation_units
select sum(total_pages)*8192 as size_used_in_bytes from ABCD.sys.allocation_units;监视此查询。它将报告数据库中已使用(已分配)的总大小。
发布于 2019-03-25 19:01:05
如果你想知道过去一个月数据库增长的规模,你可以在下面找到使用它。这里的数据%指的是驱动器:
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 deschttps://stackoverflow.com/questions/6387569
复制相似问题