Приблизительное потребление дискового пространства строками в SQL Server

Я хотел бы понять, чем обусловлен размер базы данных SQL Server 12. В мдф 21,5 Гб. Используя отчет «Использование диска основными таблицами» в SQL Server Management Studio, я вижу, что 15,4 ГБ используются «данными» одной таблицы. Эта таблица имеет 1691 строку из 4 столбцов (int, varchar(512), varchar(512), image). Я предполагаю, что столбец изображений отвечает за большую часть потребления. Но

Select (sum(datalength(<col1>)) + ... )/1024.0/1024.0 as MB From <Table>

дает только 328,9 МБ.

В чем может быть причина такого огромного расхождения?

Дополнительная информация: Для некоторых строк столбец изображений регулярно обновляется.

Это скриншот отчета: введите здесь описание изображения Если верить этому, индексы или неиспользуемое пространство не должны быть причиной.


person Christian    schedule 26.01.2018    source источник
comment
Интересно. datalength() ненадежен для оценки размера таблицы, но он не должен отличаться в 50 раз.   -  person Gordon Linoff    schedule 26.01.2018
comment
Возможно, вы также захотите разместить это на dba.stackexchange.com. Может быть, проблема с регистрацией?   -  person Jacob H    schedule 26.01.2018
comment
Возможно ли, что текущий статус является результатом нескольких операций, оставивших много неиспользованного пространства внутри страниц данных. Недавно у меня было что-то подобное, когда я применил разреженный вариант. Чтобы освободить место, вы должны использовать ALTER DATABASE {имя базы данных} REBUILD   -  person ildanny    schedule 26.01.2018


Ответы (2)


Возможно, вы используете много индексов для каждой таблицы, и все они складываются. Возможно, ваши настройки автоматического роста неверны.

person GabrielVa    schedule 26.01.2018

Причиной была длительная транзакция в другой несвязанной базе данных (!) на том же экземпляре SQL Server. Уровень изоляции зафиксированного моментального снимка чтения заполнил хранилище версий. Отключение другого приложения уменьшило использование памяти до разумного уровня.

person Christian    schedule 05.03.2018