Подскажите, как быть: был в отпуске 2 недели, прихожу и вижу что галактоидная база выросла на 100 Гб

Буду благодарен за помощь и советы

Модераторы: m0p3e, edward_K, Модераторы
Дело то как раз в том что типа никто ничего не делал, а по факту имеем: тестовую базу и боевую - каждая из них распухла на 120 Гб, причём с тестовой работают токо програмеры. На данный момент есть 2 основные версииDen писал(а):Раз никто не хочет признаваться в содеянном, можно попробовать написать скрипт mssql который будет казать по таблам БД статистику вроде :
table reserved data index_size unused
spsopr
saldomc
....
в рабочей нынешней БД и в баке до Вашего отпуска. Тогда может быть увидите за чем чего подросло. Может еще сам скуль отожрал одномоментно дисковое пространство в рамках процента прироста выставленного ?
Ошибок в скуле не замечено. Всё работает как часы.Polimer писал(а):Ошибок в скуле нет?
Однажды было такое, база стала прирастать на 1-2 гб в день(у нас база в 2 раза меньше вашей). Оказалось ошибка в схеме скуля. С помощью dbcc checkdb repair удалось победить прирост базы, но полностью ошибка не ушла. В итоге на НГ сделал конвертацию 8.10-8.10 в новую базу.
Код: Выделить всё
DBCC UPDATEUSAGE (0)
if exists (select * from information_schema.tables where table_name = 'tmp_info') drop table tmp_info
declare c_tables cursor for select table_name from information_schema.tables where table_type = 'BASE TABLE' and table_schema = 'dbo' --and table_name='t$hashan'
declare @tname varchar(100)
create table tmp_info (name varchar(100), rows int, reserved varchar(100), data varchar(100), index_size varchar(100), unused varchar(100))
open c_tables
fetch next from c_tables into @tname
while @@fetch_status = 0 begin
insert into tmp_info exec sp_spaceused @tname
fetch next from c_tables into @tname
end
close c_tables
deallocate c_tables
select * from tmp_info
order by cast(replace(reserved, 'kb', '') as integer) desc