Таблица блокировки служб SSIS при ее обновлении - PullRequest
0 голосов
/ 24 мая 2018

У меня есть пакет служб SSIS, который при запуске обновляет таблицу.Он использует промежуточную таблицу и впоследствии использует медленно меняющуюся таблицу измерений для загрузки данных в хранилище.Мы настроили его как задание агента SQL, и оно запускается каждые два часа.

Уровень изоляции пакета является сериализуемым.Уровень изоляции базы данных считывается зафиксированным.

Проблема в том, что при выполнении этого задания это задание блокирует эту таблицу и, следовательно, клиенты не могут запускать какие-либо отчеты.Это не учитывает.

Так что было бы лучшим вариантом для меня, чтобы избежать этого?клиенты должны видеть эти данные, а нам нужно обновлять таблицу каждые два часа.

Использование Microsoft SQL Server 2012 (SP3-GDR) (KB4019092) - 11.0.6251.0 (X64)

Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Другой вариант - предоставить вашим клиентам / отчетам доступ к клону вашего склада.

Создайте свой ETL в таблицу, из которой никто другой не сможет прочитать, и когда она закончится, переключите таблицу с помощью клона.

0 голосов
/ 24 мая 2018

Вы получаете "эскалацию блокировки".Это особенность, а не ошибка.8 -)

SQL Server объединяет большое количество блокировок меньшего размера в блокировку таблицы для повышения производительности.

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

https://support.microsoft.com/en-us/help/323630/how-to-resolve-blocking-problems-that-are-caused-by-lock-escalation-in

...