Ошибка ежедневного обслуживания базы данных [9689]

Добрый день! Проблема с удалением часовых данных.
скрин2.docx (241 KB)
Как только устанавливаю срок для очистки часовых данных в течении 10 минут возникает “Ошибка выполнения ежедневного обслуживания базы данных. Ошибка при удалении данных с превышенным сроком хранения. Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding. Время ожидания операции истекло”. Если на часовых указан “0” то проблем нет, все остальные данные успешно удаляются. Это происходит даже после удаления часовых данных в ручную. Данную тему я создавал (ее закрыли) и присылал копию БД, вы восстановили ее без проблем и ошибок не обнаружили, написали, что дело в компьютере. Мы приобрели более современный компьютер, но ошибка все равно возникает. Кроме того (возможно общая проблема) каждое воскресенье в одно и тоже время возникают следующие ошибки
скрин.docx (243 KB)
Системный журнал с начала мая
Системный журнал.xlsx (1.2 MB)

Рассматриваемая ошибка возникает из-за того, что SQL Server не успевает выполнить внутренний запрос, который Сервер ЛЭРС УЧЕТ посылает ему при выполнении обслуживания. Т.е. при удалении данных, превышающих срок хранения для заданного типа, истек таймаут на ожидание ответа от SQL Server. В принципе даже не смотря на то, что ответ от SQL Server не успевает ответить, запрос он все же должен выполнить, а значит при каждой такой ошибке постепенно данные должны удаляться. Таким образом можно запускать операцию обслуживания вручную, пока операция обслуживания не перестанет выдавать рассматриваемые ошибки таймаута.
В другой вашей теме про большой размер БД я давал рекомендацию по удалению данных. Собственно таким же образом вам следует поступать и в данном случае.

Все же для детального анализа ситуации нам необходима расширенная информация. Сделайте следующее: включите отладку Сервера ЛЭРС УЧЕТ, запустите обслуживание БД вручную из системных параметров, подождите достаточно продолжительное время (допустим около часа), чтобы операция обслуживания успела выполниться, после чего приложите журнал работы Сервера ЛЭРС УЧЕТ в ответном сообщении за день, в который вы выполните эти действия, сообщив время запуска обслуживания.
После этого отладку Сервера ЛЭРС УЧЕТ и Службы опроса ЛЭРС УЧЕТ можно будет выключить.

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

Запуск обслуживания 08:56:07
server.2021-05-25.log.gz (6.26 MB)

Мы проанализировали присланный журнал работы. Ситуация несколько сложнее чем я описал ранее. На сколько я вижу до удаления данных дело не доходит, так как ваш SQL Server почему то не успевает ответить операцию выборки тех записей, которые необходимо удалить, хотя данный запрос по идее очень простой и должен успеть быть обработан.
Мы поставили в план работ задачу по переработки операции обслуживания БД, которая должна позволить избежать подобных ситуаций в будущем.

Сейчас единственное что могу посоветовать это попробовать запустить обслуживание БД в период времени, когда Сервер ЛЭРС УЧЕТ не очень сильно загружен, чтобы SQL Server успел ответить на запрос выборки удаляемых данных. Либо временно остановить все процессы на Сервере (автоопрос, задания автоматического формирования отчетов и т.д.) и опять же пока все отключено запустить обслуживание.

Добрый день! Пробовал в разное время и за разный период, но удаление часовых в автоматическом режиме происходит с ошибкой. Вручную удаляются без проблем. Кроме того в воскресенье снова возникли ошибки о которых писал в первом сообщении.
скрин 02.06.docx (291 KB)

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

Что касается ошибок сохранения данных, то для обхода данной ситуации вы можете увеличить время ожидания Сервером ЛЭРС УЧЕТ ответа на запросы к SQL Server, указав уличенное значение в параметре “commandTimeout” в секции Database настроек Сервера ЛЭРС УЧЕТ.

Но, повторюсь: эта рекомендация является именно обходом данной ситуации. Ее решением является обновление ПК СУБД SQL Server с целью увеличения производительности, так как ваш текущий ПК явно не обладает необходимой производительностью, позволяющей СУБД SQL Server оперативно отвечать на запросы Сервера ЛЭРС УЧЕТ. Если Сервер ЛЭРС УЧЕТ и СУБД SQL Server установлены на одном ПК, то данный ПК должен обладать более высокими характеристиками, чем если бы они были установлены на разных ПК.

Разве производительности такого ПК не достаточно?
image-03-06-21-08-53.jpeg

Действительно характеристики вашего ПК выглядят достаточными для нормальной работы SQL Server в большинстве случаев.

Сейчас еще раз проанализировали ранее присланный системный журнал. Ошибки сохранения возникают только в одно время с ошибками обслуживания индексов БД. Обслуживание индексов довольно затратная операция и ее выполнение может быть причиной ошибок сохранения и ошибок других операций, так как в ходе ее выполнения могут блокироваться таблицы БД. Но данная операция позволяет оптимизировать работу Сервера в дальнейшем.

Сейчас операция обслуживания БД запускается раз в неделю по воскресеньям в 23:00. Если для вас данные ошибки сохранения критичны, мы можем написать скрипт который перенесет запуск операции обслуживания индексов БД на другое время по вашему выбору, когда ваш Сервер менее загружен. Либо скрипт который и вовсе отключит запуск данной операции.
Уточните критично ли для вас возникновение данных ошибок и, если да, сообщите на какое время перенести запуск операции либо нужно отключить ее вовсе.