Настроить таблицу для BULK INSERT и UPDATE? - PullRequest
0 голосов
/ 11 января 2020

У меня есть рабочая таблица (tQueryReports), где я

  1. удаляю предыдущий результат для текущего пользователя
  2. BULK INSERT строк, найденных в другой таблице, с некоторыми более тяжелыми вычислениями и XML поиск
  3. go по развернутым строкам, создание PDF, обновление каждой строки с помощью URL-адреса PDF

В течение времени записи все работало нормально, но теперь внезапно оно начало блокировка и ожидание, в конечном итоге блокирование всего приложения.

Я обнаружил (в Activity Monitor MS SQL Server 12.0.2269) в этой таблице был оператор UPDATE (скорее всего, обновление URL сгенерированными отчетами), за которым следовал куча в основном BULK INSERTS ждет. Это не похоже на go само по себе, просто продолжает накапливать ожидающие процессы.

Я не могу понять, почему UPDATE блокирует или заблокирован, поэтому сейчас я просто хотел бы знать, как установить блокировки на эта таблица.

Пользователь либо запрашивает данные (BULK INSERTing), либо генерирует отчеты в формате PDF по найденным строкам (UPDATE).

Поэтому я не думаю, что LOCKing должен быть слишком сложным. Я бы даже сказал, в этом нет необходимости.

...