Монитор роста базы данных - PullRequest
1 голос
/ 17 июня 2011

У меня есть база данных под названием ABCD размером 100 ГБ, которая заполнится на 100% в течение следующих 6 месяцев. Я должен сообщить конечным пользователям, что база данных полностью вырастет в ближайшие 6 месяцев, и разместить заказ на дополнительное хранилище.

В этом сценарии какая команда DBCC используется для проверки роста базы данных и анализа тенденции роста базы данных? За 6 месяцев?

Ответы [ 3 ]

2 голосов
/ 17 июня 2011

Вы можете отслеживать размер отдельных файлов базы данных (как файлов журнала, так и файлов данных), используя представление системного каталога 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 '
0 голосов
/ 25 марта 2019

Если вы хотите узнать размер роста БД за последний месяц, вы можете найти его ниже.Здесь 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
0 голосов
/ 17 июня 2011

sys.allocation_units:

select sum(total_pages)*8192 as size_used_in_bytes from ABCD.sys.allocation_units;

Отслеживать этот запрос.Он сообщит об общем размере, использованном (выделенном) в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...