powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сжать tempdb
9 сообщений из 9, страница 1 из 1
Как сжать tempdb
    #39603954
virtuOS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.
Сейчас размер tempdb более 100 ГБ, и непонятно, что вызвало такой рост. Что пробовал для сжатия:

Код: sql
1.
2.
3.
4.
SELECT db_name() [DB],file_id,name ,type_desc, physical_name,size/128. [Size (MB)],
    CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 [Used Space (MB)],
 size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS [Available Space (MB)]
FROM sys.database_files;



DBfile_idnametype_descphysical_nameSize (MB)Used Space (MB)Available Space (MB)tempdb1tempdevROWSD:\SQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\tempdb.mdf114781.5000009.375000114772.125000tempdb2templogLOGD:\SQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\templog.ldf215.0000006.109375208.890625

Код: sql
1.
2.
DBCC OPENTRAN;
--Нет активных открытых транзакций.



Код: sql
1.
2.
DBCC SHRINKFILE('tempdev')
--[quote автор]DBCC SHRINKFILE: страница 1:14692024 не может быть перемещена, поскольку она принадлежит рабочей таблице.



Я так понимаю, причина в странице 1:14692024. Как узнать, к какой таблице принадлежит, кто её создал. И сакраментальное "что делать"? Рестарт сервера пока не хотелось бы рассматривать.
...
Рейтинг: 0 / 0
Как сжать tempdb
    #39603963
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
virtuOS,

Версия сервера какая? С 2012 по моему появилась sys.dm_db_page_allocations
...
Рейтинг: 0 / 0
Как сжать tempdb
    #39603968
virtuOS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Microsoft SQL Server 2014 (SP2-CU8) (KB4037356) - 12.0.5557.0 (X64)
...
Рейтинг: 0 / 0
Как сжать tempdb
    #39603969
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
virtuOSDBCC OPENTRAN;
--Нет активных открытых транзакций.и что?
- подключился я к базе и создал временную таблицу, сижу и медитирую на неё
- или делаю из неё какие либо селекты
- или вообще запустил селект к базе в котором сервер построил такой план где спулит что нибудь на диск в темпдиби
...
Рейтинг: 0 / 0
Как сжать tempdb
    #39603987
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Воспользуйтесь поиском. Было недавно неск. топиков с советами и рецептами.

1С чтоле ? Бывает.... :)
...
Рейтинг: 0 / 0
Как сжать tempdb
    #39604064
virtuOS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSVВоспользуйтесь поиском. Было недавно неск. топиков с советами и рецептами.
1С чтоле ? Бывает.... :)

Это не 1С.
Поиском пользовался, всё заканчивалось рестартом сервера, чего пока не хотелось бы.
...
Рейтинг: 0 / 0
Как сжать tempdb
    #39604072
virtuOS,

Где-то есть адова хранимка, возможно с MISSING JOIN PREDICATE. Или из области "удалить всё, вычислить всё, собрав всё, заполнить всё".
...
Рейтинг: 0 / 0
Как сжать tempdb
    #39604118
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
virtuOS,

отключите все подключения к серверу и сжимайте. Только она потом снова разожмется.

авторпринадлежит рабочей таблице
Какой-то процесс выполняет в любой базе запрос, в плане которого есть обращение к tempdb.
...
Рейтинг: 0 / 0
Как сжать tempdb
    #39604141
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbcc shrinkfile ('tempdev',xxx)

где ххх - конечный размер в Мб.
Сначала установи значение чуть меньше занятого файлом, потом уменьшай на 20-30%.
Но файл сожмется, если нет активных процессов в tempdb.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сжать tempdb
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]