Рост tempdb (зависание запроса?)

все о совместной работе этих продуктов

Модератор: Дмитрий Юхтимовский

Рост tempdb (зависание запроса?)

Сообщение gladilov » 13 янв 2020, 11:27

Добрый день.
Однажды утром получили нерабочий mssql по причине переполнения диска с tempdb. Всё место съел templog.
Перезапустили sql, добавили место. Через день - то же самое.
В конце концов сел следить за сервером и нашел причину: зависшее(?) фоновое задание.
Снимок из письма коллегам: http://prntscr.com/qmwnyt
Сам запрос через сервис запросов определен как
Код: выделить все
ОбщийМодуль.НалоговыйУчет.Модуль : 6408 : Запрос.Выполнить();

Стек:
Код: выделить все
ОбщийМодуль.ДлительныеОперации.Модуль : 734 : ВыполнитьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
 ОбщийМодуль.ДлительныеОперации.Модуль : 743 : ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыПроцедуры);
 ОбщийМодуль.ОбщегоНазначения.Модуль : 4856 : Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
  : 1 : БухгалтерскиеОтчеты.ОпределитьСостояниеЭтаповРасчетаЗакрытияМесяца(Параметры[0],Параметры[1])
  ОбщийМодуль.БухгалтерскиеОтчеты.Модуль : 1923 : Результат.СостоянияЭтапов = ЗакрытиеМесяцаСервер.ОпределитьСостояниеЭтаповРасчета(
  ОбщийМодуль.ЗакрытиеМесяцаСервер.Модуль : 11293 : Обработки.ОперацииЗакрытияМесяца.ЗаполнитьСостоянияЭтапов(ПараметрыЗапускаОбновленияСостояния);
  Обработка.ОперацииЗакрытияМесяца.МодульМенеджера : 526 : ПроверитьИспользованиеЭтапа(ПараметрыОбработчика);
   Обработка.ОперацииЗакрытияМесяца.МодульМенеджера : 779 : ОбщегоНазначения.ВыполнитьМетодКонфигурации(
   ОбщийМодуль.ОбщегоНазначения.Модуль : 4856 : Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
    : 1 : ЗакрытиеМесяцаСервер.Использование_ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности(Параметры[0])
    ОбщийМодуль.ЗакрытиеМесяцаСервер.Модуль : 7422 : Документы.РаспределениеПрочихЗатрат.ИнициализироватьЗапросПолученияДанныхДляРаспределения(Запрос, ПараметрыЗапроса);
    Документ.РаспределениеПрочихЗатрат.МодульМенеджера : 2269 : ПодготовитьСлужебныеТаблицы(Запрос.Параметры.КонецПериода,
    Документ.РаспределениеПрочихЗатрат.МодульМенеджера : 3145 : НалоговыйУчет.ДоляТранспортныхРасходовТекущегоМесяца(Период, Организации, Запрос.МенеджерВременныхТаблиц);
     ОбщийМодуль.НалоговыйУчет.Модуль : 6408 : Запрос.Выполнить();

По-моему вызывается фоновым заданием, при открытии формы закрытия месяца.

Пока что "отлавливаю" ситуацию по счетчику PageLookups/sec http://prntscr.com/qmwmbm
Как видим, иногда выполняется нормально, иногда - зависает. Хочется понять почему зависает и как этого избежать. [Обслуживание индексов настроено с использованием скриптов ola.hallengren: перестроение/дефрагментация индексов раз в сутки ночью, обновление измененной статистики раз в 3 часа]
gladilov
 
Сообщений: 16
Зарегистрирован: 13 дек 2018, 11:44

Re: Рост tempdb (зависание запроса?)

Сообщение Гилёв Вячеслав » 13 янв 2020, 14:55

что Вам мешает купить дополнительный диск и разместить на нем дополнительный файл лога?
имхо это будет на порядок дешевле чем оптимизировать код
закрытие месяца в классической "методичке" 1С лупит много временных таблиц
Гилёв Вячеслав
 
Сообщений: 2436
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва

Re: Рост tempdb (зависание запроса?)

Сообщение gladilov » 13 янв 2020, 16:22

Это именно зависание, а не долгое выполнение. Я ведь указал что обычно код выполняется за менее чем 5 минут, а при зависании - длится часами (пока диск не переполнится). Файл растет на 500Мб за полчаса.
gladilov
 
Сообщений: 16
Зарегистрирован: 13 дек 2018, 11:44

Re: Рост tempdb (зависание запроса?)

Сообщение Гилёв Вячеслав » 13 янв 2020, 17:21

вы диск не можете добавить или что?
будет хватать места - операция успешно завершится
хотите посмотреть что пишет, ну встаньте отладчиком к фоновику
Гилёв Вячеслав
 
Сообщений: 2436
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва

Re: Рост tempdb (зависание запроса?)

Сообщение gladilov » 14 янв 2020, 09:37

Не люблю бить молотком по микроскопу.
Отладчик ничего не показывает.
Интересно услышать иные мнения, например Дмитрия Юхтимовского.
gladilov
 
Сообщений: 16
Зарегистрирован: 13 дек 2018, 11:44

Re: Рост tempdb (зависание запроса?)

Сообщение gladilov » 14 янв 2020, 09:39

Здесь tempdb растёт как на дрожжах описан аналогичный случай. Применено решение в виде принудительного завершения сессии - что и было выполнено у нас. Однако в той теме так же не определены причины зависания (или хотя бы способы их поиска).
gladilov
 
Сообщений: 16
Зарегистрирован: 13 дек 2018, 11:44

важно делать всё последовательно

Сообщение Гилёв Вячеслав » 14 янв 2020, 10:23

добавить места это не микроспопом, а нормальный подход при нехватке места на диске
плох тот админ который этого не понимает
сначала закройте эту простую задачу, а потом уже переходите к диагностике
диск не таких больших денег стоит, чтобы не нашлось у организации бюджета на эту простую задачу
Гилёв Вячеслав
 
Сообщений: 2436
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва


Вернуться в MS SQL Server для целей 1С:Предприятие

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2