Показать сообщение отдельно
Старый 05.11.2009, 00:01   #2  
Romul is offline
Romul
Участник
 
186 / 11 (1) +
Регистрация: 26.12.2007
Цитата:
Сообщение от Forward Посмотреть сообщение
Возникает вопрос, как сделать чтобы запрос был с READUNCOMMITTED, а не с UPDLOCK ?
Не может быть.
Специально пепепроверил на своей базе: READUNCOMMITTED.
SELECT * FROM "CRONUS Россия ЗАО$Ledger Entry Dimension" WITH (READUNCOMMITTED) WHERE (("Table ID"=5802)) ORDER BY "Table ID","Entry No_","Dimension Code" ...................

UPDLOCK может возникнуть в 4 случаях:
1. либо происходит modify на запись.
2. либо предусмотрительно лочите таблицу (повышаете уровень изоляции с READUNCOMMITTED до UPDLOCK;
3. либо FINDSET(TRUE,FALSE). В этом случае LOCKTABLE устанавливается автоматически и данные лочатся. Рекоммендуется на большом наборе данных.

3-й случай - это, по сути, замена двух последовательных операторов
LOCKTABLE;
FINDSET
на один FINDSET(TRUE,FALSE)

4. либо FINDSET(TRUE,TRUE)
LOCKTABLE в 5802 не встречается, по ссылке тоже данный рекорд не передается и до этого нигде не лочится FINDSET'ами. UPDLOCK просто физически не должно быть...
У вас кодэюнит не перелопачен ручками?