Sql Server Сжатие темп дБ мдф и ндф - PullRequest
0 голосов
/ 08 апреля 2019

Итак, мой вопрос заключается в том, что даже после запуска задания я заставляю mdf (основной файл tempdb) сокращаться до 10 МБ или около того, почему это НЕ выполняется? Я пытался запустить эту работу после своих самых тяжелых работ ETL (которые извлекаются из различных источников и готовят данные для нужд отчетности). Этот конкретный сервер НЕ используется для создания отчетов о процессах. Мне просто любопытно, почему не происходит сокращение? Должен ли я взять полную резервную копию Temp db? а затем удалить резервную копию? Sql работа, которую я сделал мое исследование здесь из предыдущих тем и сообщений и построен. Задание сервера Sql

dbcc shrinkdatabase (tempdb, 97)

-- Clean all buffers and caches
DBCC DROPCLEANBUFFERS; 
DBCC FREEPROCCACHE;
DBCC FREESYSTEMCACHE('ALL');
DBCC FREESESSIONCACHE;


DBCC SHRINKFILE (temp2,TRUNCATEONLY);
DBCC SHRINKFILE (temp3,TRUNCATEONLY);
DBCC SHRINKFILE (temp4,TRUNCATEONLY);
DBCC SHRINKFILE (temp5,TRUNCATEONLY);
DBCC SHRINKFILE (temp6,TRUNCATEONLY);
DBCC SHRINKFILE (temp7,TRUNCATEONLY);
DBCC SHRINKFILE (temp8,TRUNCATEONLY);
DBCC SHRINKFILE (templog,TRUNCATEONLY);
DBCC SHRINKFILE (tempdev,TRUNCATEONLY);



DBCC SHRINKFILE (temp2,10);
DBCC SHRINKFILE (temp3,10);
DBCC SHRINKFILE (temp4,10);
DBCC SHRINKFILE (temp5,10);
DBCC SHRINKFILE (temp6,10);
DBCC SHRINKFILE (temp7,10);
DBCC SHRINKFILE (temp8,10);
DBCC SHRINKFILE (templog,10);
DBCC SHRINKFILE (tempdev,10);
dbcc shrinkdatabase (tempdb, 10);

ALTER DATABASE tempdb MODIFY FILE (NAME = 'templog', SIZE = 10);
ALTER DATABASE tempdb MODIFY FILE (NAME = 'tempdev', SIZE = 10);
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp2', SIZE = 10);
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp3', SIZE = 10);
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp4', SIZE = 10);
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp5', SIZE = 10);
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp6', SIZE = 10);
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp7', SIZE = 10);
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp8', SIZE = 10);

tempdb_before_after_sql_job_run_Sizes

1 Ответ

0 голосов
/ 01 июня 2019

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

...