Как узнать размер базы данных в реальном времени? - PullRequest
0 голосов
/ 26 марта 2020

Я использую SQL Server 2016, и у нас есть хранилище данных, нам нужно отслеживать размер базы данных, потому что каждый день данные будут загружаться с помощью инструмента ETL.

На этапе тестирования я загружаю данные за один день в хранилище данных, затем использую ниже SQL, чтобы получить размер базы данных:

SELECT 
      database_name = DB_NAME(database_id)
    , log_size_mb = CAST(SUM(CASE WHEN type_desc = 'LOG' THEN size END) * 8. / 1024 AS DECIMAL(8,2))
    , row_size_mb = CAST(SUM(CASE WHEN type_desc = 'ROWS' THEN size END) * 8. / 1024 AS DECIMAL(8,2))
    , total_size_mb = CAST(SUM(size) * 8. / 1024 AS DECIMAL(8,2))
FROM sys.master_files WITH(NOWAIT)
WHERE database_id = DB_ID('ODS_OUT_DEV') -- for current db 
GROUP BY database_id

, затем я получил ниже информацию:

database_name    log_size_mb    row_size_mb    total_size_mb
ODS_OUT_DEV      127794.63      127802.63      255597.25

после этого я загружаю данные другого дня в хранилище данных, и я уверен, что в таблицы в хранилище данных было вставлено много данных. Затем я использую тот же SQL выше, чтобы получить информацию о размере базы данных, но он возвращает те же данные, что и при первом запуске. Поэтому я думаю, что если SQL возвращает информацию о размере базы данных в реальном времени, если нет, как я могу получить информацию в реальном времени

...