2009-07-13 4 views
2

У нас есть производственная среда SQL Server 2000, где внезапно (т. Е. Последние 3 дня) что-то заставило файл данных tempdb расти очень крупным (45 концертов с базой данных, которая составляет всего 10 гигов). Вчера, после того, как это произошло снова, мы сократили базу данных и выполнили основные пакетные процессы индивидуально без каких-либо проблем. Однако сегодня утром база данных была восстановлена ​​до 45 концертов.Sql Server 2000 - tempdb растет очень большой

Есть ли простой способ узнать, что вызывает рост этой базы данных? В идеале, что-то, на что можно было бы взглянуть сегодня, но если это не доступно, что-то, что можно настроить для получения этой информации завтра.

BTW: Сокращение базы данных возвращает пространство в течение нескольких секунд.

+2

Звучит как вопрос с сервером Vault ... но вы можете посмотреть на Sql Profiler. –

ответ

2

Согласны с Джимми, вам нужно использовать SQL Profiler, чтобы найти, какие временные объекты создавались настолько интенсивно. Это могут быть временные таблицы, в которых используются некоторые отчеты или что-то вроде этого.

+0

Я установил некоторые трассировки Profiler, чтобы запускать все отслеживаемые события, отслеживающие всю ночь: отслеживать все, что заняло более 10 секунд для запуска, все, что сгенерировано более чем 1M данных, все, что генерирует более 1 миллиона записей (это было бы три отдельных следа). Трудно сказать, что многое зависит от вашей среды и системы; Отслеживание этого материала может занять много времени (поскольку вы можете работать только на ночь и проверять на следующий день). Поскольку это tempdb, это, вероятно, одно большое действие, а не кучка маленьких парней (если вы не объявляете транзакции). –

0

У вас есть работа, которая перестраивает индекс? Вполне возможно, что он использует SORT_IN_TEMPDB

или любые другие большие запросы, которые могли бы расширить сортировочных TempDb

0

Это может иметь что-то делать с моделью восстановления, что TempDB установлен в. Он может быть установлен как FULL вместо BULK-LOGGED. FULL recovery увеличивает размер журнала транзакций до тех пор, пока не будет выполнена резервная копия.

Посмотрите на размер файла данных и размер журнала транзакций.

0

Я не DBA, но некоторые мысли:

  • Возможно ли, что есть температура таблицы создается, но не упал? ##tempTable?
  • Возможно ли, что есть большая таблица темпа Создана (и упаден), но пространство не было исправлено?
  • Вы производите массовую загрузку , где система может использовать временную таблицу? (Я не уверен, если вы можете), но можете ли вы включить Auto-Shrink для tempdb?
1

Я хотел поблагодарить всех за их ответы, поскольку они определенно привели к причине проблемы.

Мы включили профилировщик SQL и, вполне вероятно, появился большой объемный груз. Поскольку мы работаем над проектом, чтобы переместить «оскорбительную» работу, чтобы работать и в mysql, мы, вероятно, сейчас просто посмотрим.