Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
Почитал тут про SavePoints и захотелось уточнить: Я правильно понял что если в какой-то StoredProcedure возникает исключение, то все изменения, сделанные данной процедурой (не упоминаем автономные транзакции), будут откачены автоматически и нет разницы делать ли транзакции Commit или Rollback (если не вносились другие изменения)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 11:33 |
|
||
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
alekcvp, Там еще влияет наличие suspend (до suspend и после), и кажись вложенность процедур... IMHO: Не хочешь искать проблем - используй rollback. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 12:03 |
|
||
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
fraks, Ясно. Я просто наткнулся на фразу: http://www.ibase.ru/pslock/ В случае конфликта выполняется откат снапшота (если запись выполняется посредством нескольких SQL-операторов посредством rollback, если одним – commit, в базу всё равно ничего не записано, а rollback способствует росту разрыва OIT/OAT) и цикл повторяется. Из которой ненавязчиво следует вывод, что Rollback по каждому поводу делать нежелательно, а лучше где можно использовать Commit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 13:17 |
|
||
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
alekcvpчто Rollback по каждому поводу делать нежелательно, а лучше где можно использовать Commit. сервер все равно сделает коммит вместо роллбэка, - если в транзакции никаких изменений данных не было - если изменения были, но "мало" (где-то до 80 тысяч) - он их откатит по undo log - если undo log выключен. http://www.ibase.ru/mga/ Так что если нужен роллбэк - лучше делать роллбэк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 13:26 |
|
||
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
kdvсервер все равно сделает коммит вместо роллбэка, - если в транзакции никаких изменений данных не было - если изменения были, но "мало" (где-то до 80 тысяч) - он их откатит по undo log - если undo log выключен. В последнем случае таки будет rollback. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 13:35 |
|
||
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
kdvсервер все равно сделает коммит вместо роллбэка, ... - если undo log выключен.??? 1. undo log невозможно выключить - можно отключить создание сейвпойнта уровня тр-ции, не больше и не меньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 13:37 |
|
||
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
alekcvpвывод, что Rollback по каждому поводу делать нежелательно, а лучше где можно использовать CommitБред чистой воды. Что делать - rollback или commit, должно определяться логикой приложения и ни чем иным. Только логикой, никакие "тайные знания" о внутренних механизмах СУБД тут не имеют право вмешиваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 13:39 |
|
||
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
15.06.2017 13:39, hvlad пишет: > Что делать - rollback или commit, должно определяться логикой приложения и ни чем иным. > Только логикой, никакие "тайные знания" о внутренних механизмах СУБД тут не имеют право вмешиваться. +1 Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 13:40 |
|
||
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
hvlad, я имел в виду isc_tpb_no_auto_undo (и помню, что целиком undo-лог не отключается). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 13:53 |
|
||
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
kdvhvlad, я имел в виду isc_tpb_no_auto_undo (и помню, что целиком undo-лог не отключается).Я знаю, что ты имел в виду :) Но я совершенно не согласен с тем, как ты это написал. Ибо разные люди это читают и потом ссылаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 15:01 |
|
||
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
hvlad, подробно было в материалах семинара по транзакциям, в Москве в 2014 году. Но семинар был платный, поэтому материалы были доступны только участникам. Могу по мотивам твоего доклада: 1. Каждый запрос имеет собственную точку сохранения (savepoint), которая содержит данные, необходимые для отмены изменений запроса (undo data) 2. точки сохранения могут быть групповыми (begin-end), управляемыми в psql словом savepoint, и у транзакций 3. в транзакции блоки undo data при успешном выполнении операторов объединяются в общий undo log транзакции. Именно так возможна отмена всех действий транзакции по rollback (и последующее превращение rollback в commit). 4. no_auto_undo не отключает undo log у транзакции, но отключает "склеивание" undo data от разных операторов. В результате rollback будет настоящим rollback-ом. Как итог - no_auto_undo можно выключать для экономии памяти (и некоторого ускорения) при массовой заливке или обновлении данных (когда в транзакции много операторов). И да - то что делает сервер внутри не должно быть поводом для каких-то специфических действий снаружи. p.s. я использовал no_auto_undo разве что для теста, чтобы без изменений в транзакции был настоящий rollback по rollback - я проверял момент срабатывания авто-свипа в ИБ и ФБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 15:17 |
|
||
|
SavePoints и StoredProcedure
|
|||
|---|---|---|---|
|
#18+
kdv4. no_auto_undo не отключает undo log у транзакции, но отключает "склеивание" undo data от разных операторов. С точностью до наоборот: undo log операторов по-прежнему склеиваются, но результат не сливается с transaction undo log по одной простой причине, что тот вообще не создаётся. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 16:06 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=39472251&tid=1561533]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 294ms |
| total: | 436ms |

| 0 / 0 |
