SQLServer tempDB растет бесконечно - PullRequest
0 голосов
/ 18 сентября 2008

у нас есть несколько «производственных сред» (по три сервера на каждом, с одинаковой версией нашей системы. Каждый имеет базу данных SQL Server в качестве производственной базы данных).

В одной из этих сред журнал транзакций tempdb начинает расти быстро и бесконечно, мы не можем найти почему. Та же версия SO, SQL Server, приложения. Никаких изменений в окружающей среде.

Кто-то знает, как понять, что происходит, или как это исправить?

Ответы [ 4 ]

2 голосов
/ 18 сентября 2008

Возможно, вы находитесь в режиме модели полного восстановления - если вы делаете регулярные резервные копии, вы можете изменить это на простое, и это уменьшит размер журнала после резервного копирования.

Вот дополнительная информация .

1 голос
/ 18 сентября 2008

Вы пробовали запустить Profiler? Это позволит вам просмотреть все запущенные запросы на сервере. Это может дать вам некоторое представление о том, что создает элементы в базе данных tempdb.

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

хорошо, я думаю, что этот вопрос такой же, как мой. tempdb быстро растет. общая причина в том, что программист создает процедуру и использует временную таблицу. когда мы создаем эти таблицы или другие операции, такие как триггер, команда dbcc, все они используют базу данных tempdb. создавая временные таблицы, sqlserver выделит место для таблицы, например, GAM, SGAM или IAM, но sqlserver должен обеспечить физическую согласованность, поэтому каждый раз это может делать только человек, остальные объекты должны ждать. это привело к быстрому росту базы данных. я нашел решение от MS, примерно так, надеюсь, может помочь вам: 1. создайте файлы данных для базы данных tempdb, число будет таким же, как у процессора, например: у вашего хоста есть 16 cpu, вам нужно создать 16 файлов даты для базы данных tempdb. и каждый файл должен иметь одинаковый размер. 2. Вам нужно следить за этими файлами, конечно, они не заполнены. 3.Если пространство этих файлов недостаточно велико, это будет автоматически расти, вам нужно поместить другие файлы того же размера.

мой английский не очень хорош, и если вы не можете решить его, используйте процедуру sp_helpfile, проверьте его. и вставьте результат здесь. когда я был в сингапуре, я нахожу эту ситуацию. удачи.

0 голосов
/ 18 сентября 2008

Лучше всего запустить SQL Server Profiler и посмотреть, что происходит. Ищите высокие значения в столбце «Записывает» или в операторы буферизации, они оба могут вызвать использование высокой температуры.

Если растет только журнал транзакций, попробуйте это, открытые транзакции предотвращают сжатие журнала по мере его продвижения. Это должно быть запущено в tempdb:

DBCC OPENTRAN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...