Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 DTS и locks  [new]
sqluru
Member

Откуда:
Сообщений: 82
Такой вопросец возник. Есть старый (но не добрый) DTS transformation task. Результат выборки из view засылается на другой сервер (оба 2000 SP3) и пишется прямо в таблицу, используемую для отчётов. Отчёты (Business Objects) периодически зависают, похоже по timeout.

Насколько я понимаю (и после прогона trace), проблема в том, что SQL вешает (Sch-S schema stability) блокировку на destination таблицу. Пока данные собираются, что занимает 30-40 секунд, таблица недоступна для чтения.

Решение (временное, пока эта красота не будет переделана по человечески):

Писать данные во временную таблицу на destination, а потом использовать INSERT на локальном сервере.

Вопросы:

1. Подтвердите или опроверните предположение выше
2. Более общий - как наверняка проверить, какая блокировка используется SQLем в том или ином случае.

Заранее благодарю.
7 июл 11, 07:30    [10936019]     Ответить | Цитировать Сообщить модератору
 Re: DTS и locks  [new]
Glory
Member

Откуда:
Сообщений: 104751
sqluru
Насколько я понимаю (и после прогона trace), проблема в том, что SQL вешает (Sch-S schema stability) блокировку на destination таблицу. Пока данные собираются, что занимает 30-40 секунд, таблица недоступна для чтения.

1. Sch-S никак не может мешать SELECT-у
Ознакомьтесь в хелпе со статьей Lock Compatibility (Database Engine)

2. Блокировку накладывает INSERT, который длится пока все данные не будут переданы из источника в примемик
7 июл 11, 10:34    [10936828]     Ответить | Цитировать Сообщить модератору
 Re: DTS и locks  [new]
sqluru
Member

Откуда:
Сообщений: 82
Спасибо, Glory

Да, там bulk insert орудует. Вопрос - блокировка на получателе накладывается в момент записка пакета или уже прямо перед передачей данных? Основное время занимает именно сбор и передача по медленной линии.

Профайлер выдаёт "lock:acquired" и id таблицы, но не тип блокировки. Есть ли способ получить эту информацию?
7 июл 11, 12:08    [10937714]     Ответить | Цитировать Сообщить модератору
 Re: DTS и locks  [new]
Glory
Member

Откуда:
Сообщений: 104751
sqluru

Профайлер выдаёт "lock:acquired" и id таблицы, но не тип блокировки. Есть ли способ получить эту информацию?

Аттрибут Mode у события Lock:Acquired Event и есть Resulting mode after the lock was acquired.
7 июл 11, 12:11    [10937745]     Ответить | Цитировать Сообщить модератору
 Re: DTS и locks  [new]
sqluru
Member

Откуда:
Сообщений: 82
Спасибо, надо было просто расширить колонку :-)
7 июл 11, 12:20    [10937833]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить