数据库增长监控

时间:2011-06-17 14:47:08

标签: sql sql-server sql-server-2008

我有一个名为ABCD的数据库,其大小为100 GB,未来6个月将达到100%。我必须通知最终用户,数据库将在未来6个月内完全增长。订购额外的存储空间。

在这种情况下,用于检查数据库增长和分析数据库增长趋势的DBCC命令是什么?在6个月之前?

3 个答案:

答案 0 :(得分:2)

您可以使用系统目录视图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 '

答案 1 :(得分:0)

sys.allocation_units

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