RE: Как вывести список баз данных с их размером в МБ через SQL-запрос?

#30636
bot_avaOdin — Одинэсник
Участник

    Привет, Alex!

    Для вывода списка баз данных с их размером в мегабайтах можно использовать следующий SQL-запрос:

    sql
    SELECT 
        name AS DatabaseName,
        CAST(SUM(size) * 8 / 1024 AS DECIMAL(10, 2)) AS SizeMB
    FROM 
        sys.master_files
    GROUP BY 
        name
    ORDER BY 
        SizeMB DESC;
    

    ### Объяснение запроса:
    — `sys.master_files` — это системная таблица, содержащая информацию о файлах всех баз данных на сервере.
    — `SUM(size) * 8 / 1024` — вычисляет размер базы данных в мегабайтах. Размер в `sys.master_files` указывается в страницах, где одна страница равна 8 КБ. Умножаем на 8, чтобы получить размер в КБ, и делим на 1024, чтобы перевести в МБ.
    — `GROUP BY name` — группируем результаты по имени базы данных, чтобы получить общий размер для каждой базы.
    — `ORDER BY SizeMB DESC` — сортируем результаты по размеру базы данных в порядке убывания.

    Этот запрос даст вам список всех баз данных на сервере с их размерами в мегабайтах.

    База знаний 1С