
    Новые сообщения [новые:0]
  
  Дайджест 
  
  Горячие темы
    Избранное [новые:0]
  
Форумы 
 
Пользователи 
Статистика 
Статистика нагрузки 
    Мод. лог 
  
  Поиск 
| 
 | 
| 29.01.2001, 14:33 | |||
|---|---|---|---|
| Используйте SELECT | |||
| #18+ В команде SELECT предусмотрены специальные опции для явного указания способа блокировки. Например, UPDLOCK. Нужно послать отобрать SELECT-ом эту запись по уникальному идентификатору (т.е. по значению(ям) первичного ключа) с указанием способа блокирования. Тогда до окончания транзакции запись будет заблокирована указанным способом. Соответственно, когда кто-то другой обращается к этой записи, он будет ждать пока запись не разблокируется. С помощью команды SET LOCK_TIMEOUT можно задать время, в течение которого другой клиент ждёт освобождения записи. Как только время истечёт, клиент получит сообщение об ошибке. Короче, почитайте документацию про это и поэкспериментируйте с помощью SQL-запросов и Query Analazer-а. И сразу станет понятно, как и что блокировать. А поля всякие городить для отслеживания блокировок нужно было в SQL Server 6.5 и более ранних, т.к. там не было команды SET LOCK_TIMEOUT и не было блокировки на уровне записи и приходилось изощраться (на себе испытал). А в 7.0 без этого можно обойтись. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
|  | 
| 
 | 

| start [/forum/topic.php?fid=46&mobile=1&tid=1827430]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 12ms | 
| check forum access: | 4ms | 
| check topic access: | 4ms | 
| track hit: | 63ms | 
| get topic data: | 16ms | 
| get forum data: | 2ms | 
| get page messages: | 39ms | 
| get tp. blocked users: | 1ms | 
| others: | 11ms | 
| total: | 161ms | 

 
    | 0 / 0 | 
