Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Размер таблиц базы данных


Автор: p0s0l 18.4.2013, 18:13
Добрый день!

Сервер SQL: MS SQL Severs 2008 R2.
Пытаюсь посчитать размер таблиц базы с помощью:
Код

DBCC UPDATEUSAGE (0)
create table #t(name varchar(255), row varchar(255), reserved varchar(255), data varchar(255), inxex_size varchar(255), unused varchar(255))

insert into #t
exec sp_msforeachtable N'exec sp_spaceused ''?''' 

select * from #t
drop table #t


Фактический размер базы - 350 гб (столько занимает файл Rows Data)...
Если же сложить размер всех таблиц (reserved) - получается всего 267 гб... Что еще занимает почти 80 гб? Или подсчет размеров таблиц такой неточный?

Автор: Akina 19.4.2013, 08:26
Фактический суммарный размер файлов на диске всегда меньше, чем занятое на нём пространство. Служебные данные, хвосты блоков хранения... и в хранилище сервера та же фигня.

Автор: p0s0l 19.4.2013, 15:36
Как выяснилось, базу не ужимали (Shrink)... Провели сжатие, и размер уменьшился как раз на эти 80 гб.

Автор: Akina 19.4.2013, 15:42
Цитата(p0s0l @  19.4.2013,  16:36 Найти цитируемый пост)
Провели сжатие, и размер уменьшился как раз на эти 80 гб. 

Это не самое лучшее, что могло произойти... такое сжатие плохо скажется на инсертах. 15-20% пустого пространства - это близко к оптимальному.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)