|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
МСУhVostt, что ты там бурлишь себе под нос, транзактщионщик? Иди паси коз, и не забудь их оттестировать МСУ ты в своём репертуаре: пук-пук-пук в лужу. И сел в лужу. Ведь ты единственный в мире знаешь, как работать с БД без транзакций ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 11:33 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttМСУP.S. Хвост, купи себе уже голову Мне — зачем? Ну как бы без головы трудно нынче. Хотя ты прав, и так сойдёт hVosttРасскажи-ка, как ты обходишься без транзакций людям. А я разве без них обхожусь? hVosttМСУ ты в своём репертуаре: пук-пук-пук в лужу. И сел в лужу. Ведь ты единственный в мире знаешь, как работать с БД без транзакций В данном случае лужа - это твоё лицо. Да, так и есть. Пук в лужу? Ну хорошо, пускай будет так ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 11:39 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
Алексей КПро лишние блокировки, в том числе повышающие вероятность мёртвой блокировки, выше уже написали. Наблюдал случай, один админ самовольно решил почистить таблицу с логами. Откуда ему было знать, что MSSQL выполняет команду delete from Log where EntryDate < @d в одной транзакции. Он сначала пару часов ждал, пока оно удалится. Потом ему надоело ждать, он отменил запрос. Потом все столько же ждали, пока отменится транзакция. На всё ушло часов ~6. Из-за невозможности отключения транзакций например чистка БД от старых записей превращается в мучение, хотя казалось бы... А как выкрутились из ситуации? Забили на чистку логов? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 11:40 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
МСУА я разве без них обхожусь? Ты только недавно говорил «АПРИОРИ ОПАСНА И ВРЕДНА», скажи, ты не осёл случайно? Упёртое тупое животное. Сам сказал «опасна и вредна» и тут же даёшь заднюю. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 11:41 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttА как выкрутились из ситуации? Забили на чистку логов?очевидно, операции, затрагивающие такие большие объемы просто делаются в цикле частями. Тут целостность транзакции не нужна. Мало того, суммарно на это уйдет в разы меньше времени, так как СУБД не потребуется делать не*$*ически огромную запись в лог транзакций, а потом ее коммитить. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 11:44 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
МСУ, И ещё скажи мне, как вот это твоё высказывание: МСУпредставь себе ситуацию, когда ночной джоб перелопатил 29.9К сотрудников и по каким-то причинам упал Согласуется с твоими ссылками про проблемы в многопользовательской среде, ведь как бы «ночной джоб» работает обычно с БД в одно рыло, монопольно? Я всё жду не дождусь от тебя реальный проблемный кейс. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 11:46 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
Shocker.ProhVosttА как выкрутились из ситуации? Забили на чистку логов?очевидно, операции, затрагивающие такие большие объемы просто делаются в цикле частями. Тут целостность транзакции не нужна. Мало того, суммарно на это уйдет в разы меньше времени, так как СУБД не потребуется делать не*$*ически огромную запись в лог транзакций, а потом ее коммитить. Про чистки логов понятно, их надо делать серией TOP-ов, тем более логи вообще не несут никакой полезной нагрузки, оказывающей влияние на целостность бизнес-данных. Интересны примеры с бизнес-данными. Когда же это действительно вредно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 11:51 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttМСУА я разве без них обхожусь? Ты только недавно говорил «АПРИОРИ ОПАСНА И ВРЕДНА», скажи, ты не осёл случайно? Упёртое тупое животное. Сам сказал «опасна и вредна» и тут же даёшь заднюю. Ты реально дурак? Выдрал фразу из контекста и прикинулся идиотом? МСУПлюс, на реальных массивах данных транзакционность априори вредна и опасна. Это ж тебе не пару тыщ строк обновить. Разницу видишь между "транзакционность вредна" и "транзакционность вредна больших выборках"? Убей уже себя, глупый ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 12:23 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttМСУ, И ещё скажи мне, как вот это твоё высказывание: МСУпредставь себе ситуацию, когда ночной джоб перелопатил 29.9К сотрудников и по каким-то причинам упал Согласуется с твоими ссылками про проблемы в многопользовательской среде, ведь как бы «ночной джоб» работает обычно с БД в одно рыло, монопольно? Ну ты чайник, я плачу... БД - это многопользователськая среда. Однорылый джоб - это такой же клиент из 100500 других клиентов этой БД. Если тупой джоб заюзает повышенный уровень изоляции транзакции, он может заблокировать ресурсы (дедлоки), из-за чего другие пользователи (и сервисы), работающие с залоченными таблицами будут отсасывать. Учи матчасть уже, клоун. hVosttЯ всё жду не дождусь от тебя реальный проблемный кейс. Ты дурак? :) Нет, честно ответь, ты идиот? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 12:28 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
МСУТы реально дурак? Выдрал фразу из контекста и прикинулся идиотом? МСУПлюс, на реальных массивах данных транзакционность априори вредна и опасна. Это ж тебе не пару тыщ строк обновить. Разницу видишь между "транзакционность вредна" и "транзакционность вредна больших выборках"? Убей уже себя, глупый Реальные массивы данные === большие выборки? Ты случаем, не таджик? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 12:45 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
МСУНу ты чайник, я плачу... БД - это многопользователськая среда. Однорылый джоб - это такой же клиент из 100500 других клиентов этой БД. Если тупой джоб заюзает повышенный уровень изоляции транзакции, он может заблокировать ресурсы (дедлоки), из-за чего другие пользователи (и сервисы), работающие с залоченными таблицами будут отсасывать. Учи матчасть уже, клоун. Ты же говорил про ночной джоб. Ладно, ты по ходу упорот, забываешь то, что сам сказал 5 минут назад. Тебе в психиатрию надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 12:45 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
МСУhVosttЯ всё жду не дождусь от тебя реальный проблемный кейс. Ты дурак? :) Нет, честно ответь, ты идиот? Я не виноват, что ты не в состоянии до сих пор привести проблемный кейс. Алексей и то с ходу привёл, хотя не совсем то, что я просил, ведь изначально обсуждалась бизнес-логика и бизнес-данные, а не чистка логов. Но тоже сойдёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 12:49 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttАлексей КПро лишние блокировки, в том числе повышающие вероятность мёртвой блокировки, выше уже написали. Наблюдал случай, один админ самовольно решил почистить таблицу с логами. Откуда ему было знать, что MSSQL выполняет команду delete from Log where EntryDate < @d в одной транзакции. Он сначала пару часов ждал, пока оно удалится. Потом ему надоело ждать, он отменил запрос. Потом все столько же ждали, пока отменится транзакция. На всё ушло часов ~6. Из-за невозможности отключения транзакций например чистка БД от старых записей превращается в мучение, хотя казалось бы... А как выкрутились из ситуации? Забили на чистку логов?Так и делаем:hVosttПро чистки логов понятно, их надо делать серией TOP-ов hVostt, тем более логи вообще не несут никакой полезной нагрузки, оказывающей влияние на целостность бизнес-данных. Интересны примеры с бизнес-данными. Когда же это действительно вредно.Не нужно баловаться с избыточностями, тогда бороться за целостность транзакциями не придётся. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 13:14 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
Алексей КНе нужно баловаться с избыточностями, тогда бороться за целостность транзакциями не придётся. :-)необходимость транзакций порождается далеко не всегда избыточностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 13:18 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
Алексей КНе нужно баловаться с избыточностями, тогда бороться за целостность транзакциями не придётся. :-) Т.е. всё зависит от требований, задач и ситуации. «Транзакции = плохо» такое же нелепое утверждение, как и «Транзакция = хорошо». Какие-то абстрактные «реальные массивы данных» о которых с упорством глупого прыщавого юнца вещает МСУ, для которых злые транзакции «априори опасна и вредна», это ровным счётом ни о чём. В транзакциях важна согласованность. Если при обработке даже сотни тысяч записей некий пакет, состоящий из сотни или тысячи записей упал с ошибкой, то во-первых, мы получим несогласованное состояние всей системы, во-вторых, падение с ошибкой может означать косяк в логике, неправильную обработку, или неправильное изначальное состояние данных, а это в свою очередь значит, что «успешно» обработанные данные уже нельзя с полной уверенностью называть «успешными». Есть реальный пример, где такая ситуация недопустима в принципе — банковская система. Но почему только там ошибки не допускаются, а где-то ещё могут допускаться, особенно в рамках крупной организации. Что это за глупость такая, типа часть сотрудников «не загрузилась»? Это что вообще? Это не нормально. Либо всё, либо ничего, если сама задача не подразумевает иное (когда на первом месте стоит задача хоть что-то обработать, не обращая внимания на ошибки). В общем, глобальные утверждения что дескать что-то там есть беспощадное зло, без контекста реальных задач , простительны лишь прыщавым студентам, у которых просто ещё нет опыта. Взрослым опытным серьёзным людям нести такую ахинею непростительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 13:50 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
Shocker.ProАлексей КНе нужно баловаться с избыточностями, тогда бороться за целостность транзакциями не придётся. :-)необходимость транзакций порождается далеко не всегда избыточностью.Но избыточность всегда порождает необходимость транзакций. :-) Второй случай: сущность хранится в нескольких таблицах. Больше случаев не припомню. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 13:50 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
Алексей КВторой случай: сущность хранится в нескольких таблицах. Больше случаев не припомню. Так это не избыточность, это нормализация. Обычно так и получается. Если сущность хранится полностью в одной таблице, это скорее всего справочник. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 13:55 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttАлексей КНе нужно баловаться с избыточностями, тогда бороться за целостность транзакциями не придётся. :-) Т.е. всё зависит от требований, задач и ситуации. «Транзакции = плохо» такое же нелепое утверждение, как и «Транзакция = хорошо».Этого никто не говорил. Говорили, что транзакции нужно делать как можно короче. МСУ даже МСДН цитировал. :-) hVosttВ транзакциях важна согласованность. Если при обработке даже сотни тысяч записей некий пакет, состоящий из сотни или тысячи записей упал с ошибкойНе абстрактный "пакет", а "сущность, состоящая из тысячи записей". Действительно, это третья необходимость транзакций. Итого: 1. Избыточность. 2. Сущность хранится в нескольких таблицах. 3. Сущность хранится в нескольких записях. hVosttЕсть реальный пример, где такая ситуация недопустима в принципе — банковская система. Но почему только там ошибки не допускаются, а где-то ещё могут допускаться, особенно в рамках крупной организации. Что это за глупость такая, типа часть сотрудников «не загрузилась»? Это что вообще? Это не нормально. Либо всё, либо ничего, если сама задача не подразумевает иное (когда на первом месте стоит задача хоть что-то обработать, не обращая внимания на ошибки).Банковская система - типичный пример избыточности на почве распределённости хранения данных. Конечно там нужны транзакции, распределённые. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 14:04 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttАлексей КВторой случай: сущность хранится в нескольких таблицах. Больше случаев не припомню. Так это не избыточность, это нормализация. Обычно так и получается. Если сущность хранится полностью в одной таблице, это скорее всего справочник.А я и не называю это избыточностью. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 14:04 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
Алексей КЭтого никто не говорил. Говорили, что транзакции нужно делать как можно короче. МСУ даже МСДН цитировал. :-) А я в свою очередь не утверждал обратного, и с этим не спорил. Нет смысла лепить транзакции там, где они не нужны, или искать другие пути решения, если на первом место стоит производительность. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 14:13 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttАлексей КЭтого никто не говорил. Говорили, что транзакции нужно делать как можно короче. МСУ даже МСДН цитировал. :-) А я в свою очередь не утверждал обратного, и с этим не спорил. Нет смысла лепить транзакции там, где они не нужны, или искать другие пути решения, если на первом место стоит производительность.Однако тут ты предлагал сеанс репликации данных выполнять в одной транзакции, что не есть хорошо. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 14:32 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
полный пипец ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 14:32 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttАлексей КЭтого никто не говорил. Говорили, что транзакции нужно делать как можно короче. МСУ даже МСДН цитировал. :-) А я в свою очередь не утверждал обратного, и с этим не спорил. Нет смысла лепить транзакции там, где они не нужны, или искать другие пути решения, если на первом место стоит производительность. не сдавайся производительность не отменяет транзакционность ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 14:33 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
это надо ж - можно значит без транзакций убить элемент справочника с сотней другой ссылок ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 14:34 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttРеальные массивы данные === большие выборки? Ты случаем, не таджик? Реальные массивы данных - это большие хранилища, террабайты, десятки террабайт. Это тебе не 10Gb база твоего ларька по продаже сигарет. hVosttТы же говорил про ночной джоб. Ладно, ты по ходу упорот, забываешь то, что сам сказал 5 минут назад. Тебе в психиатрию надо. Какая разница, ночной он или дневной? Ты не допускаешь, что пользователи могут работать в разных часовых поясах? hVosttЯ не виноват, что ты не в состоянии до сих пор привести проблемный кейс. Алексей и то с ходу привёл, хотя не совсем то, что я просил, ведь изначально обсуждалась бизнес-логика и бизнес-данные, а не чистка логов. Но тоже сойдёт. Тебе уже 3 человека рассказали про проблемные кейсы. Я же не виноват, что ты идиот и понималка сломана. Объяснить очевидное разжевать, макнуть тебя с головой - а тебе всё мало. Крепкий орешек ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2015, 14:35 |
|
|
start [/forum/moderation_log.php?user_name=%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1%82%D0%B5%D0%BF%D0%BB%D0%B7]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 439ms |
total: | 711ms |
0 / 0 |