Тайм-аут блокировки SQL Compact, когда обновление содержит подзапрос - PullRequest
0 голосов
/ 07 сентября 2011

Я использую SQL Server Compact 3.5 с пакетом обновления 2 (3.5.8085.0) и не могу выполнить инструкцию обновления.

Ниже мое обновление:

UPDATE MyTable
  SET ColumnB = 'SomeOtherValue'
WHERE ColumnA IN (
  SELECT TOP(90000)
    ColumnA
  FROM MyTable
  WHERE ColumnB = 'SomeValue'
  ORDER BY ColumnA
)

Этот запрос будет выполняться от 5 секунд до 1+ часа. Очень редко это закончится, но большую часть времени я получаю:

Большая ошибка 0x80004005, Малая ошибка 25090

Время ожидания SQL Server Compact истекло в ожидании блокировки. Время блокировки по умолчанию 2000 мс для устройств и 5000 мс для настольных компьютеров. Блокировка по умолчанию Тайм-аут может быть увеличен в строке подключения с помощью ssce: свойство тайм-аута блокировки по умолчанию. [ID сессии = 1, ID темы = 6876, идентификатор процесса = 5712, имя таблицы = MyTable, тип конфликта = блокировка (u блоки), Resource = TAB]

Я уверен, что нет других подключений к этой базе данных. Только мой запрос SSMS.

Мысли

...