|
|
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
... блин, уже несколько лет как знаю про no auto undo, но только вчера допёрло, когда Влада и АК слушал :-) И вот, решил проверить перформанс на тесте, имитирующем OLTP-активность. Сначала дал поработать 1 час варианту, при котором транзакции стартовали БЕЗ кляузы no auto undo, затем остановил его и запустил вариант, где уже было no auto undo. Результат для 80 молотилок красноречив - см. под спойлерами. "Обычный стиральный порошок" (set tran snapshot no wait БЕЗ кляузы no auto undo): UNITCNT_ALLCNT_OKCNT_ERRERR_PRCOK_MIN_MSOK_MAX_MSdoc_list_aiud3013300580,26511277fn_get_random_id316313163100517066sp_add_invoice:apply17517500551027264sp_add_invoice:cancel39251435,891338014sp_cancel_client_order883857262,94514218sp_cancel_customer_reserve19019000511083sp_cancel_pay_to_supplier550087123sp_cancel_supplier_invoice440064595sp_cancel_supplier_order1100455455sp_cancel_write_off4841714,5851499sp_client_order135141351400517108sp_count_for_gc38523852005136842sp_create_doc_using_fifo246842353211524,665148027sp_customer_reserve247022355011524,665115552sp_make_invnt_saldo2295174255324,09517847sp_make_money_saldo1450113631421,65518208sp_pay_from_customer140011400100515491sp_pay_to_supplier4004000051362sp_payment_prepare139281392800515437sp_recalc_idx_stat95665230431,79606080sp_reserve_write_off3953395300511581sp_supplier_invoice243243005423742sp_supplier_order255255008651454 UNITCNT_ALLCNT_OKCNT_ERRERR_PRCOK_MIN_MSOK_MAX_MSdoc_list_aiud3566355970,19511173fn_get_random_id370063700600515168sp_add_invoice:apply17817800751011453sp_add_invoice:cancel45281737,77698034sp_cancel_client_order40239661,49563649sp_cancel_customer_reserve3903900051624sp_cancel_pay_to_supplier431256571sp_cancel_supplier_invoice660052492sp_cancel_supplier_ordersp_cancel_write_off2823517,8551168sp_client_order148841488400512533sp_count_for_gc55105510005136026sp_create_doc_using_fifo25236243558813,495145610sp_customer_reserve25199243158843,55112755sp_make_invnt_saldo1911145745423,75516186sp_make_money_saldo1301101328822,13519076sp_pay_from_customer149371493700514306sp_pay_to_supplier5365360051761sp_payment_prepare150881508800514178sp_recalc_idx_stat128486641832,55586408sp_reserve_write_off5059505900511233sp_supplier_invoice233233006918167sp_supplier_order2272270097125695 Колонки: Код: plaintext 1. 2. 3. 4. 5. 6. Так что делаем главный вывод: семинары и ходьба по ним - нужны и полезны :-) PS. Процедуры sp_make_invnt_saldo, sp_make_money_saldo и sp_recalc_idx_stat - "служебные", должны выполняться в режиме singletone, поэтому на них число обломов допускается высоким. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 22:21:04 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Таблоид"Продвинутое моющее средство" Во-первых, от этого моющего средства бывает похмелье, т.е. сборка мусора. Во-вторых, он совершенно не влияет на откат отдельных запросов и процедур, который всегда идёт с помощью undo. Учитывая, что в твоём тест, ЕМНИП, всё построено на процедурах и EB, у тебя транзакции в основном состоят из одного запроса каждая. Т.е. no auto undo им должен быть абсолютно перпендикулярен. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 22:49:51 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovу тебя транзакции в основном состоят из одного запроса каждая.Я ушёл от этого кошмара под названием "всё в один запрос". Ибо столкнулся с отсутствием в ФБ такой штуки, как 'skip locked' В итоге, переехал на курсоры с "проскоком мимо" записей, которые залочены конкурентами. Да и вообще, сейчас всё сложнее у мну, "прикладных режимов" с одним DML-стейтментом почти не осталось. Вернее, вообще нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 23:00:16 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВо-первых, от этого моющего средства бывает похмелье, т.е. сборка мусора.Это должно беспокоить, когда у таких транзакций высок шанс получать обломы (насколько я понял вчерашнее). Если же почти всегда транзакция успешно доходит до коммита, то в чём трабл ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 23:03:12 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov> Т.е. no auto undo им должен быть абсолютно перпендикулярен. И не только им, а большинству. :) Поэтому сабж так непопулярен - не потому что сложен или неизвестен, а потому что неуловимый Джо. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 23:12:00 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
ТаблоидЕсли же почти всегда транзакция успешно доходит до коммита, то в чём трабл ? Трабл в том, что этот параметр влияет исключительно на rollback. То есть если транзакция коммитится, то он совершенно никуда не влияет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 23:14:05 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустампотому что неуловимый Джо.цифирки под сукно не затолкаешь (см стартовый пост). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 23:15:07 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Таблоидцифирки под сукно не затолкаешь (см стартовый пост). Вот я смотрю эти цифирки и совершенно не понимаю что именно тебя в них так возбуждает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 23:19:08 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТаблоидцифирки под сукно не затолкаешь (см стартовый пост). Вот я смотрю эти цифирки и совершенно не понимаю что именно тебя в них так возбуждает.Прирост cnt_ok за одно и то же время (1 час) для одноимённых режимов (sp_client_order, sp_customer_reserve етц) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 23:24:35 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovесли транзакция коммитится, то он совершенно никуда не влияет.Йок! Я вчера в оба уха смотрел на иллюстрации к докладу Влада, и в оба глаза слушал, что он говорил. Когда стейтмент-1 завершается, то его собственный undo-лог сливается с undo-логом уровня транзакции; когда затем стейтмент-2 (в этой же трн) завершается, то его undo-лог опять перетекает в undo-лог транзакции, и так далее по всем стейтментам, которые чего-то меняют. Ну так вот: no auto undo запрещает делать этот слив после каждого стейтмента. Их анду-логи остаются "не слитыми" в общий горшок. А раз так, то движок меньше дрыгается именно в случаях, когда трн успешно доходит до своего коммита. ЕЯПП, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 23:31:23 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
ТаблоидИх анду-логи остаются "не слитыми" в общий горшок. А раз так, то движок меньше дрыгается именно в случаях, когда трн успешно доходит до своего коммита. Вот только в случае коммита этот "общий горшок" тупо дропается одним движением руки. А на скорость сливания логов стейтментов его наличие или отсутствие практически не влияет. Впрочем, можешь потестить то же самое на моём патче. Именно этот момент я в нём оптимизировал. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2014, 00:27:37 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Таблоид> цифирки под сукно не затолкаешь При чём же тут циферки? Вопрос не в них, а как (какими запросами и транзакциями) они появляются. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2014, 07:31:32 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Ну, я так понимать, что для случаев, когда в рамках одной трн идёт много отдельных DML (в т.ч. вот таких: update t set id=id where id = :a_selected_row), то эффект точно есть. При условии, конечно, что бол-во таких транзакций завершается успешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2014, 08:27:48 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Таблоид> когда в рамках одной трн идёт много отдельных DML Угу. Только не много, а очень много. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2014, 08:55:50 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамТолько не много, а очень много."очень" - это сколько, по-твоему ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2014, 09:04:19 |
|
||
|
set transaction NO auto undo (или о пользе слушания монстров на FB-семинарах :))
|
|||
|---|---|---|---|
|
#18+
Таблоид> "очень" - это сколько, по-твоему ? Вот это как раз считать надо, не помню. В обычных прикладных системах такое редкая редкость, AFAIU. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2014, 09:21:06 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38663055&tid=1563535]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
208ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 548ms |

| 0 / 0 |
