Несмотря на то, что файл журнала показывает, что имеется более 1 ГБ свободного места, мы начинаем получать сообщение об ошибке каждые 3 или 4 дня о том, что файл TempDB заполнен. Я знаю, что курсоры влияют на файл TempDB, но есть ли еще что-нибудь, на что мне следует обратить внимание, чтобы понять, почему это продолжает происходить? Я пробовал запустить SQL Profiler, но при его запуске он настолько замедлял работу БД, что у пользователей возникали таймауты. Какие конкретные элементы я должен проверить в SQL Profiler?
Напишите сценарий ваших хранимых процедур и найдите временные таблицы, которые создаются, но не удаляются. Если эти sprocs запускаются часто, возможно, вы таким образом заполняете свою tempdb.
Также проверьте запланированные задания, чтобы убедиться, что они выполняются прямо перед этим. Плохо спроектированный импорт или экспорт тоже могут сделать это.
И почему, пожалуйста, скажите, у вас достаточно курсоров, чтобы считать это причиной, по которой ваша tempdb заполняется. Курсоры обычно следует избегать, особенно в производственных базах данных. Почему вместо этого вы не используете решения на основе наборов?