Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Ramis Member Откуда: Сообщений: 94 |
Добрый день, У меня вопрос: Хорошо ли использовать в запросах WITH(nolock)? Просто на форуме ни у кого не встречал в скриптах. |
25 дек 13, 11:27 [15344128] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
Лично у меня, человек, использующий данную конструкцию на постоянной основе, якобы для "увеличения скорости работы" - верный кандидат на увольнение. Ибо такое использование говорит о полном непонимании "что это", "как это" и "для чего это". |
25 дек 13, 11:39 [15344191] Ответить | Цитировать Сообщить модератору |
Ramis Member Откуда: Сообщений: 94 |
invm, а можешь разжевать для меня? |
25 дек 13, 11:42 [15344210] Ответить | Цитировать Сообщить модератору |
Критик Member Откуда: Москва / Калуга Сообщений: 34728 Блог |
Ramis, обычно используется в ETL процессах по наполнению не-онлайн хранилищ данных подробности тут http://msdn.microsoft.com/ru-ru/library/ms187373.aspx в описании READUNCOMMITTED |
25 дек 13, 11:47 [15344238] Ответить | Цитировать Сообщить модератору |
хмхмхм
Guest |
Как категорично. В OLTP решениях nolock тоже плохо? |
||
25 дек 13, 12:21 [15344491] Ответить | Цитировать Сообщить модератору |
Crimean Member Откуда: Сообщений: 13148 |
а хорошо использовать "+"? а "*"? nolock - средство. вопрос сугубо уместности использования в определенных ситуациях |
25 дек 13, 12:22 [15344502] Ответить | Цитировать Сообщить модератору |
pkarklin Member Откуда: Москва (Муром) Сообщений: 74925 |
C появлением в 2005 версионности и в OLTP решениях - плохо. |
||
25 дек 13, 12:32 [15344578] Ответить | Цитировать Сообщить модератору |
хмхмхм
Guest |
pkarklin, а как версионность может помешать блокировки записи\таблицы? |
25 дек 13, 12:52 [15344714] Ответить | Цитировать Сообщить модератору |
pkarklin Member Откуда: Москва (Муром) Сообщений: 74925 |
NOLOCK ставили для того, чтобы читающие запросы не вешали шаред локов и не мешали писателям. При включенной опции READ_COMMITED_SNAPSHOT используется версионное хранилище, читающие запросы не накладывают шаред локов (если только не попросить это сделать явно), получая при этом Statement Level Consistency. |
||
25 дек 13, 12:59 [15344756] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
хмхмхм, readers using snapshot-based isolation levels do not issue shared locks, so readers don't wait when the requested data is exclusively locked. nolock отпадает вообще за ненужностью |
25 дек 13, 13:02 [15344797] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
|
||||
25 дек 13, 13:15 [15344935] Ответить | Цитировать Сообщить модератору |
Ramis Member Откуда: Сообщений: 94 |
Если не использовать with(nolock), если один оператор правит данные в приложение на делфи, остальным 250 операторам ждать придется что ли, чтоб открыть форму? |
25 дек 13, 13:30 [15345064] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Что для вас означает "правит данные" ? В ячейке грида нажимает клавиши на клавиатуре ? Или выполняет команду update на сервере? |
||
25 дек 13, 13:38 [15345133] Ответить | Цитировать Сообщить модератору |
Crimean Member Откуда: Сообщений: 13148 |
NOLOCK при включенном RCSI для массовых подчиток "ни о чем" все же снижает оверхед tempdb конечно, имхо и, особенно, если клиент грешит "недочитками", даже при использовании select top n |
25 дек 13, 13:40 [15345152] Ответить | Цитировать Сообщить модератору |
Мистер Хенки Member Откуда: канализация Сообщений: 6615 |
Вы определитесь какой вам уровень изоляции нужен для корректной работы приложения и постарайтесь избавиться от транзакций открываемых в клиентском приложении и ждущих каких то действий оператора . |
||
25 дек 13, 13:43 [15345179] Ответить | Цитировать Сообщить модератору |
Ramis Member Откуда: Сообщений: 94 |
В ячейке грида нажимает клавиши на клавиатуре |
||||
25 дек 13, 13:52 [15345259] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
И как это мешает другим 250-ти операторам "открыть форму" ? |
||||
25 дек 13, 13:56 [15345289] Ответить | Цитировать Сообщить модератору |
Ramis Member Откуда: Сообщений: 94 |
Это я просто пример приводил) |
||||
25 дек 13, 14:04 [15345341] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Ваш пример несостоятелен |
||||
25 дек 13, 14:05 [15345350] Ответить | Цитировать Сообщить модератору |
SFlash Member Откуда: Сообщений: 143 |
И оператор напрямую редактирует в таблице? И все это время открыта транзакция и залочена запись? Сомневаюсь что с такой системой даже двое смогут работать одновременно. |
||||
25 дек 13, 14:06 [15345358] Ответить | Цитировать Сообщить модератору |
SFlash Member Откуда: Сообщений: 143 |
Если например строится общий отчет 10 раз на дню, в OLTP системе, разными "менеджерами" типа "а на какую сумму мы уже сегодня продали?", не являющийся строгой отчетностью, тут можно и даже нужно nolock. Если же делается счет сторонней фирме, за принятый и реализованный товар, то здесь не может быть никаких UNCOMITTED данных, только то что подтвердилось закрытыми транзакциями, поэтому никакого unlock близко пускать нельзя Как то так вкратце.. |
||||
25 дек 13, 14:12 [15345398] Ответить | Цитировать Сообщить модератору |
Crimean Member Откуда: Сообщений: 13148 |
видел такое. и оно даже как-то работало. lock_timeout использовался. транзакции висели долго. админить было "сложновато" |
||
25 дек 13, 14:15 [15345423] Ответить | Цитировать Сообщить модератору |
Мистер Хенки Member Откуда: канализация Сообщений: 6615 |
прикольно. В одном банке было дело составлен документ о правилах кодирования на TSQL. Так with(nolock) было требованием в оперативной БД для всех запросов. |
||||
25 дек 13, 14:21 [15345460] Ответить | Цитировать Сообщить модератору |
SFlash Member Откуда: Сообщений: 143 |
Ну может как раз для "оперативных" отчетов, которые не являются документами по сути, а используются просто для информации. |
||
25 дек 13, 14:25 [15345493] Ответить | Цитировать Сообщить модератору |
MasterZiv Member Откуда: Питер Сообщений: 34659 |
Плохо. |
||
25 дек 13, 17:16 [15346652] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |