27.07.2005, 07:33 | #1 |
Участник
|
Блокировка таблиц
Несколько не понятна ситуация с блокировкой таблиц при работе с SQL-сервером. Может кто подскажет что, или где еще почитать.
В каких случаях какое количество записей блокируется? Вот написано было в мануале, что если после LOCKTABLE делать поиск последней з-аписи, то заблокируется вся таблица. А можно ли определенную совокупность записей заблокировать? И в каких случаях происходит мертвая блокировка? И еще, когда именно снимается блокировка таблицы при использовании LOCKTABLE? |
|
27.07.2005, 12:38 | #2 |
Участник
|
В SQL, если этого не делать специально, таблицы вообще никогда не блокируются, блокируются только записи.
Если после LOCKTABLE сделать FIND(+), то заблокируется recordset, состоящий из двух записей - текущей и предпоследней) Опеределенную совокупность можно заблокировать только через команды SQL, только зачем? |
|
23.08.2005, 11:56 | #3 |
Участник
|
несколько цитат из документации
Архитектура Navision В SQL Server чаще всего используется блокировка записей, которая может быть преобразована в блокировку таблиц, если SQL Server решит, что этот способ предпочтителен. .... если вы добавляете записи в базу данных в формате SQL Server, необходимо не только дать команду LOCKTABLE перед чтением записей, но и немедленно считать последнюю запись в таблице. Это позволит заблокировать общую запись (common record), что будет эквивалентно блокировке таблицы. FAQ for the Microsoft SQL Option for Navision Q23: Это правда, что Microsoft SQL server снимает проблему блокировки, которая может произойти с базой данных Navision? A: Сервер SQL ведет себя подобно базе данных Navision в отношении этой проблемы с точки зрения табличной блокировки. |
|