Есть sql server, на котором есть джоба, она запускается каждые 10 секунд, ничего не складывает в бд, а только общается с linked server через odbc. В процедуре используются глобальные временные таблицы, которые сразу дропаются по окончании процедуры. Причем данных в этих временных таблицах кот наплакал, 3-5 строк в таблице из 10 колонок. Т.е. процедура запустилась, вытащила 10 строк с одного сервера во временную таблицу, отправила в другой сервер, дропнула таблицу и так далее.
Tempdb при этом растет примерно на 70 МБ в час, и место на диске постоянно убывает. Приходится перезапускать sql server, чтобы освободить место.
Кто нибудь может объяснить почему она постоянно растет?
цитата:
Нехватка места на диске для базы данных tempdb может привести к существенным сбоям рабочей среды SQL Server и помешать работающим приложениям завершить операции. Для контроля места на диске, используемого указанными функциями в файлах базы данных tempdb, можно использовать динамическое административное представление sys.dm_db_file_space_usage Кроме того, для контроля деятельности по выделению и освобождению страниц в базе данных tempdb на уровне сеанса или задачи можно использовать динамические административные представления sys.dm_db_session_space_usage и sys.dm_db_task_space_usage. Эти представления могут быть использованы для определения больших запросов, временных таблиц или табличных переменных, которые используют много места на диске базы данных tempdb. Также предусмотрено несколько соответствующих счетчиков, которые можно использовать для отслеживания свободного места в базе данных tempdb и ресурсов, использующих базу данных tempdb. Дополнительные сведения см. в разделе Устранение неполадок, связанных с нехваткой места на диске для базы данных tempdb.
Проверьте что у вас реально задействует темпдб. И не забывайте, что не обязательно рестартовать сервис когда можно по шедулеру шринковать базу.