Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 WITH(nolock)  [new]
Ramis
Member

Откуда:
Сообщений: 94
Добрый день,

У меня вопрос: Хорошо ли использовать в запросах WITH(nolock)?
Просто на форуме ни у кого не встречал в скриптах.
25 дек 13, 11:27    [15344128]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
Лично у меня, человек, использующий данную конструкцию на постоянной основе, якобы для "увеличения скорости работы" - верный кандидат на увольнение. Ибо такое использование говорит о полном непонимании "что это", "как это" и "для чего это".
25 дек 13, 11:39    [15344191]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Ramis
Member

Откуда:
Сообщений: 94
invm,
а можешь разжевать для меня?
25 дек 13, 11:42    [15344210]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34728
Блог
Ramis,

обычно используется в ETL процессах по наполнению не-онлайн хранилищ данных

подробности тут
http://msdn.microsoft.com/ru-ru/library/ms187373.aspx
в описании READUNCOMMITTED
25 дек 13, 11:47    [15344238]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
хмхмхм
Guest
invm
Лично у меня, человек, использующий данную конструкцию на постоянной основе, якобы для "увеличения скорости работы" - верный кандидат на увольнение. Ибо такое использование говорит о полном непонимании "что это", "как это" и "для чего это".


Как категорично.
В OLTP решениях nolock тоже плохо?
25 дек 13, 12:21    [15344491]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Crimean
Member

Откуда:
Сообщений: 13148
а хорошо использовать "+"? а "*"? nolock - средство. вопрос сугубо уместности использования в определенных ситуациях
25 дек 13, 12:22    [15344502]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
хмхмхм
Как категорично.
В OLTP решениях nolock тоже плохо?


C появлением в 2005 версионности и в OLTP решениях - плохо.
25 дек 13, 12:32    [15344578]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
хмхмхм
Guest
pkarklin,

а как версионность может помешать блокировки записи\таблицы?
25 дек 13, 12:52    [15344714]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
хмхмхм
а как версионность может помешать блокировки записи\таблицы?


NOLOCK ставили для того, чтобы читающие запросы не вешали шаред локов и не мешали писателям. При включенной опции READ_COMMITED_SNAPSHOT используется версионное хранилище, читающие запросы не накладывают шаред локов (если только не попросить это сделать явно), получая при этом Statement Level Consistency.
25 дек 13, 12:59    [15344756]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
хмхмхм
Как категорично.
В OLTP решениях nolock тоже плохо?
Да используйте наздоровье, если консистентность данных не важна. Только речь шла о безусловном использовании nolock везде.
хмхмхм
а как версионность может помешать блокировки записи\таблицы?
На версионных TIL S-блокировки не накладываются.
25 дек 13, 13:15    [15344935]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Ramis
Member

Откуда:
Сообщений: 94
Если не использовать with(nolock), если один оператор правит данные в приложение на делфи, остальным 250 операторам ждать придется что ли, чтоб открыть форму?
25 дек 13, 13:30    [15345064]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ramis
Если не использовать with(nolock), если один оператор правит данные в приложение на делфи, остальным 250 операторам ждать придется что ли, чтоб открыть форму?

Что для вас означает "правит данные" ?
В ячейке грида нажимает клавиши на клавиатуре ? Или выполняет команду update на сервере?
25 дек 13, 13:38    [15345133]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Crimean
Member

Откуда:
Сообщений: 13148
NOLOCK при включенном RCSI для массовых подчиток "ни о чем" все же снижает оверхед tempdb
конечно, имхо и, особенно, если клиент грешит "недочитками", даже при использовании select top n
25 дек 13, 13:40    [15345152]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Ramis
Если не использовать with(nolock), если один оператор правит данные в приложение на делфи, остальным 250 операторам ждать придется что ли, чтоб открыть форму?

Вы определитесь какой вам уровень изоляции нужен для корректной работы приложения и постарайтесь избавиться от транзакций открываемых в клиентском приложении и ждущих каких то действий оператора .
25 дек 13, 13:43    [15345179]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Ramis
Member

Откуда:
Сообщений: 94
Glory
Ramis
Если не использовать with(nolock), если один оператор правит данные в приложение на делфи, остальным 250 операторам ждать придется что ли, чтоб открыть форму?

Что для вас означает "правит данные" ?
В ячейке грида нажимает клавиши на клавиатуре ? Или выполняет команду update на сервере?


В ячейке грида нажимает клавиши на клавиатуре
25 дек 13, 13:52    [15345259]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ramis
Glory
пропущено...

Что для вас означает "правит данные" ?
В ячейке грида нажимает клавиши на клавиатуре ? Или выполняет команду update на сервере?


В ячейке грида нажимает клавиши на клавиатуре

И как это мешает другим 250-ти операторам "открыть форму" ?
25 дек 13, 13:56    [15345289]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Ramis
Member

Откуда:
Сообщений: 94
Glory
Ramis
пропущено...


В ячейке грида нажимает клавиши на клавиатуре

И как это мешает другим 250-ти операторам "открыть форму" ?


Это я просто пример приводил)
25 дек 13, 14:04    [15345341]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ramis
Glory
пропущено...

И как это мешает другим 250-ти операторам "открыть форму" ?


Это я просто пример приводил)

Ваш пример несостоятелен
25 дек 13, 14:05    [15345350]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
SFlash
Member

Откуда:
Сообщений: 143
Ramis
Glory
пропущено...

Что для вас означает "правит данные" ?
В ячейке грида нажимает клавиши на клавиатуре ? Или выполняет команду update на сервере?


В ячейке грида нажимает клавиши на клавиатуре


И оператор напрямую редактирует в таблице? И все это время открыта транзакция и залочена запись?
Сомневаюсь что с такой системой даже двое смогут работать одновременно.
25 дек 13, 14:06    [15345358]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
SFlash
Member

Откуда:
Сообщений: 143
хмхмхм
invm
Лично у меня, человек, использующий данную конструкцию на постоянной основе, якобы для "увеличения скорости работы" - верный кандидат на увольнение. Ибо такое использование говорит о полном непонимании "что это", "как это" и "для чего это".


Как категорично.
В OLTP решениях nolock тоже плохо?


Если например строится общий отчет 10 раз на дню, в OLTP системе, разными "менеджерами" типа "а на какую сумму мы уже сегодня продали?", не являющийся строгой отчетностью, тут можно и даже нужно nolock.

Если же делается счет сторонней фирме, за принятый и реализованный товар, то здесь не может быть никаких UNCOMITTED данных, только то что подтвердилось закрытыми транзакциями, поэтому никакого unlock близко пускать нельзя

Как то так вкратце..
25 дек 13, 14:12    [15345398]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Crimean
Member

Откуда:
Сообщений: 13148
SFlash
И оператор напрямую редактирует в таблице? И все это время открыта транзакция и залочена запись?
Сомневаюсь что с такой системой даже двое смогут работать одновременно.


видел такое. и оно даже как-то работало. lock_timeout использовался. транзакции висели долго. админить было "сложновато"
25 дек 13, 14:15    [15345423]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
SFlash
хмхмхм
пропущено...


Как категорично.
В OLTP решениях nolock тоже плохо?


Если например строится общий отчет 10 раз на дню, в OLTP системе, разными "менеджерами" типа "а на какую сумму мы уже сегодня продали?", не являющийся строгой отчетностью, тут можно и даже нужно nolock.

Если же делается счет сторонней фирме, за принятый и реализованный товар, то здесь не может быть никаких UNCOMITTED данных, только то что подтвердилось закрытыми транзакциями, поэтому никакого unlock близко пускать нельзя

Как то так вкратце..

прикольно. В одном банке было дело составлен документ о правилах кодирования на TSQL. Так with(nolock) было требованием в оперативной БД для всех запросов.
25 дек 13, 14:21    [15345460]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
SFlash
Member

Откуда:
Сообщений: 143
Мистер Хенки
прикольно. В одном банке было дело составлен документ о правилах кодирования на TSQL. Так with(nolock) было требованием в оперативной БД для всех запросов.


Ну может как раз для "оперативных" отчетов, которые не являются документами по сути, а используются просто для информации.
25 дек 13, 14:25    [15345493]     Ответить | Цитировать Сообщить модератору
 Re: WITH(nolock)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34659
Ramis
Добрый день,

У меня вопрос: Хорошо ли использовать в запросах WITH(nolock)?
Просто на форуме ни у кого не встречал в скриптах.


Плохо.
25 дек 13, 17:16    [15346652]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить