powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Timeout: level 300
15 сообщений из 15, страница 1 из 1
Timeout: level 300
    #39672423
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть сложности с таймаутами из .NET приложения во время выполнения бэкапа.

Подробнее:
Раз в день .NET приложение копирует свежие данные данные в архивную базу, которая выросла уже до 4ТБ.
Архивная база лежит на относительно медленном диске (один физический диск).
Её бэкап (на медленный носитель) длится 24 часа.

Для копирования в архивную базу в приложении открывается SqlDataReader для источника, и передаётся в объект SqlBulkCopy для записи в целевую таблицу архива.

Для SqlBulkCopy предватительно настраиваются свойства NotifyAfter и BatchSize.
Опционально можно включать транзакцию для всех вставлямых в таблицу данных (т.е. на коннекшине).
Если она выключена, испозьзуется UseInternalTransaction = true на SqlBulkCopy.
Таймаут для SqlBulkCopy установлен в 0. Таймаут для источника установлен в 120 сек.

До сих пор всё было нормально.
С некоторого времени приложение начало вылетать по таймауту, если оно выполняется одновременно с бэкапом .

Причём очено странно:
Некоторые таблицы копируются баз проблем.

Для других - в основном с большим количеством BLOB данных копируется некоторое количестро строк, затем секунд через 20 после последней записи вылетает таймаут.

Методом тыка:
Включил асинхронное обновление статистики для целевой базы - не помогло.
Затем ещё уменьшил BatchSize - не помогло.
Затем ещё включил транзакцию - помогло .

Но остаётся совершенно непонятным причина таймаута.
Мож. кто сталкивался или имеет объяснение, буду признателен.


ЗЫ: пожалуйста, не предлагайте апгрейтить железо - мой вопрос о причинах.
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672444
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsС некоторого времени приложение начало вылетать по таймауту, если оно выполняется одновременно с бэкапом .В процессе бекапа минимально логируемые операции логируются полностью. Соответственно, увеличивается и время выполнения.
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672456
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmAlexander UsС некоторого времени приложение начало вылетать по таймауту, если оно выполняется одновременно с бэкапом .В процессе бекапа минимально логируемые операции логируются полностью. Соответственно, увеличивается и время выполнения.
Ишо бы знать бякап какой базы исполняется...
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672464
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222Ишо бы знать бякап какой базы исполняется...
Выполняется полный бэкап целевой базы - базы архива.
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672472
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmВ процессе бекапа минимально логируемые операции логируются полностью. Соответственно, увеличивается и время выполнения.

Спасибо за уточнение.
К сожалению оно не меняет картину - установка таймаута для источника 120с, для цели 0с,
Вначале пишет несколько блоков записей, потом вылетает примерно через 20 (это переменно) сек. после одного (случайного) их них.
А когда вкючил транзакцию на уровне записи в таблицу (дневной импорт) уже 2 раза как отработало без таймаута.
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672498
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Usaleks222Ишо бы знать бякап какой базы исполняется...
Выполняется полный бэкап целевой базы - базы архива.
Ну дык, чередуйте бякап и чудесное приложение.
Сутки через сутки.
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672500
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222Ну дык, чередуйте бякап и чудесное приложение. Сутки через сутки.
Типа "кривые гвозди надо забивать кривыми молотками"?

Я же написал, хочу понять причину .
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672566
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Usaleks222Ну дык, чередуйте бякап и чудесное приложение. Сутки через сутки.
Типа "кривые гвозди надо забивать кривыми молотками"?

Я же написал, хочу понять причину .

А что тут нипанятного?
Окромя "внешних таймаутов", есть "внутренние таймауты" самого сервера.
https://docs.microsoft.com/en-us/sql/t-sql/statements/set-lock-timeout-transact-sql?view=sql-server-2017
Т.е. если что-то не может получить доступ к ресурсу за 20 сек - это убивается с ошибкой.
Если ты озаботишься выводом ошибки MS SQL в своем приложении - станет понятнее.
Ну, или профайлером лови.
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672606
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222Окромя "внешних таймаутов", есть "внутренние таймауты" самого сервера.
https://docs.microsoft.com/en-us/sql/t-sql/statements/set-lock-timeout-transact-sql?view=sql-server-2017 ...
Залогил значение @@LOCK_TIMEOUT для коннекшина на целевую базу.
Выдаёт -1

Может есть ещё другие параметры для внутренних таймаутов?
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672620
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Us,

Ожидания сессии анализируйте - sys.dm_exec_session_wait_stats
Если версия не позволяет, то через extended events - https://blog.sqlauthority.com/2016/05/28/sql-server-finding-waits-session-extended-event-wait_info/
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672626
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm,

Спасибо большое, буду копать.

Но может есть параметры, котрые влияют на время ожиданиий сессии?
Может их сразу можно подкрутить и посмотреть будет ли эффект?
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672629
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Us,

Ставлю ежа, что sql здесь не при чём
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672699
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Usaleks222Окромя "внешних таймаутов", есть "внутренние таймауты" самого сервера.
https://docs.microsoft.com/en-us/sql/t-sql/statements/set-lock-timeout-transact-sql?view=sql-server-2017 ...
Залогил значение @@LOCK_TIMEOUT для коннекшина на целевую базу.
Выдаёт -1

Может есть ещё другие параметры для внутренних таймаутов?

Позор, Ватсон.
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672700
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Timeout: level 300
    #39672709
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222Позор, Ватсон.
Холмс ну Вас с Вашими подколами, что Вы конкретно имеете ввиду?

А что касается SqlBulkCopy:

"Значение 0 означает отсутствие ограничений. Операция массового копирования будет находиться в состоянии ожидания бесконечно долго."
Это я знаю, так и установлено, я же написал.

Или я что то важное просмотрел?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Timeout: level 300
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]