Я разрабатываю решение, предназначенное для удаления частей базы данных SQL Server, если она обнаруживает, что она заполняется.Для этого мне нужно знать не только общий размер базы данных, но, в частности, объем свободного размера в МБ.В настоящее время я использую в основном Oracle Database, но решение должно быть глобальным, если это возможно.
Проведя некоторые исследования, я нашел здесь несколько публикаций по SO, а также в других частях Интернета с некоторыми решениями., но они часто были слишком большими (собирать тонны данных, которые мне не интересны) или они просто не работали.Двое из немногих, кому мне удалось получить ответ, были SELECT sum(bytes)/1024/1024 \"DB Size in MB\" FROM dba_free_space GROUP BY TABLESPACE_NAME
и подобные SELECT sum(bytes)/1024/1024 \"DB Size in MB\" FROM dba_free_space
.Проблема заключалась в том, что было неясно, были ли они специфичны для Oracle DB, и они давали мне явно неправильные результаты (например, БД была почти пустой и показала наполовину полный, или БД получила какие-то новые данные и свободный размер получилбольше).
Итак, суть в следующем: как программно узнать, сколько свободного места в МБ у базы данных SQL Server в настоящее время есть?Особенно приветствуется решение с использованием SQL-запроса.