|
Какой уровень изоляции выбрать для процедуры?
|
|||
---|---|---|---|
#18+
H5N1 использовать rcsi лишь в некоторых транзакциях Это как? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 08:59 |
|
Какой уровень изоляции выбрать для процедуры?
|
|||
---|---|---|---|
#18+
msLex H5N1 использовать rcsi лишь в некоторых транзакциях Это как? да, как это? собственно, с этого вопроса и началась тема. но там два других варанта. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 14:18 |
|
Какой уровень изоляции выбрать для процедуры?
|
|||
---|---|---|---|
#18+
aleks222 H5N1 пропущено... лишние. при чтении лишние блокировки накладывает. отсюда и дедлоки на пустом месте пропущено... глупости. rcsi без блокировок дает консистентный набор "Лишние", говоришь? А мужики то в мелкософте и не знают. "Глупости", говоришь? Дык никто ж не мешает тредстартеру включить rcsi и умыться слезами. что за фигня? На Production базе делать эксперименты думая, что включение RCSI - это просто включить и выключить. А если потом (!) выяснится, что с данными что-то не то, тогда рассказать про неких "мужиков то в мелкософте" и "умыться слезами"? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 14:22 |
|
Какой уровень изоляции выбрать для процедуры?
|
|||
---|---|---|---|
#18+
Ролг Хупин aleks222 пропущено... "Лишние", говоришь? А мужики то в мелкософте и не знают. "Глупости", говоришь? Дык никто ж не мешает тредстартеру включить rcsi и умыться слезами. что за фигня? На Production базе делать эксперименты думая, что включение RCSI - это просто включить и выключить. А если потом (!) выяснится, что с данными что-то не то, тогда рассказать про неких "мужиков то в мелкософте" и "умыться слезами"? Вы не нервничайте, поциент. Это ваще не с вами говорят. Модератор: Споконее, пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 15:10 |
|
Какой уровень изоляции выбрать для процедуры?
|
|||
---|---|---|---|
#18+
НеофитSQL Разве чтение может блокироваться? Да, может. Пример из практики. Есть таблица в куче и два индекса - первичный ключ, и покрывающий (include) индекс, предназначенный для определенного запроса. (Заметьте, таблица одна, но объектов два). В процессе развития приложения этот запрос изменился, в него включили пару дополнительных полей. План запроса тоже изменился, и стал выполнять помимо поиска по инклуд-индексу, еще и lookup по первичному ключу. В ситуации, приведшей к дедлоку, первая сессия (читатель only!), при поиске по покрывающему индексу, сначала наложила S-блокировку на ключ в этом индексе, (прочитала его), и стала читать ключ из PK, (это всё в одном операторе select !), то есть попыталась наложить блокировку чтения и на него, но не тут-то было. Поскольку "в это же время" другая сессия (писатель, update) уже изменила строку в первичном ключе, (наложив на неё эксклюзивную X-блокировку), и вознамерилась довершить дело, (это тоже всё в одном запросе!), внеся соответствующие изменения в инклуд-индекс. Но эта строка в покрывающем индексе уже была заблокирована первой сессией. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 15:32 |
|
Какой уровень изоляции выбрать для процедуры?
|
|||
---|---|---|---|
#18+
Uridian, Спасибо за подробное объяснение, я его частично понял. В оракле (извиняюсь за упоминание непрофильного софта, важно для примера) эксклюзивный лок не запрещает чтение, поэтому такая ситуация не могла бы произойти. Т.е. по крайней мере есть гарантия что в Ларрином мире читатели рано или поздно закончат и отпустят ресурс, дедлока не будет. Есть особый случай "select.. for update", который намеренно ведет себя как писака, он хорошо известен им пользуются когда блокировка нужна. Но блокировка от других писак. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2021, 23:49 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1684703]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
133ms |
get topic data: |
13ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 248ms |
0 / 0 |