MS SQL выделяет больше места, чем нужно. Таким образом, ваш фактический используемый размер базы данных часто намного меньше, чем выделенный размер.
MS SQL выделяет больше места, чем нужно, потому что выделение большего количества данных довольно дорого, и более эффективно делать это периодически, а не при каждой записи в БД.
Если вы хотите изменить объем выделенного пространства за раз, вы можете использовать параметр FILEGROWTH , чтобы установить тип роста файла, который вы хотите использовать в своей базе данных.
Значение:
- 0 означает, что рост не разрешен
- [X] МБ или [X] ГБ означает значительный рост при достижении текущего размера БД
- [X]% означает рост на столько процентов при достижении текущего размера БД
.
ALTER DATABASE [databasename] MODIFY FILE ( NAME = N'databasename', FILEGROWTH = 1GB )
Чтобы освободить дополнительное выделенное пространство, вы можете выполнить DBCC SHRINKDATABASE
Чтобы получить фактический размер вашей базы данных, вы можете выполнить это:
SELECT size FROM sys.database_files WHERE name = 'databasename'
Чтобы получить фактический размер журнала вашей базы данных, вы можете выполнить это:
SELECT size FROM sys.database_files WHERE name = 'databasename_log'