Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.06.2017, 11:33
|
|||
|---|---|---|---|
SavePoints и StoredProcedure |
|||
|
#18+
Почитал тут про SavePoints и захотелось уточнить: Я правильно понял что если в какой-то StoredProcedure возникает исключение, то все изменения, сделанные данной процедурой (не упоминаем автономные транзакции), будут откачены автоматически и нет разницы делать ли транзакции Commit или Rollback (если не вносились другие изменения)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2017, 12:03
|
|||
|---|---|---|---|
SavePoints и StoredProcedure |
|||
|
#18+
alekcvp, Там еще влияет наличие suspend (до suspend и после), и кажись вложенность процедур... IMHO: Не хочешь искать проблем - используй rollback. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2017, 13:17
|
|||
|---|---|---|---|
SavePoints и StoredProcedure |
|||
|
#18+
fraks, Ясно. Я просто наткнулся на фразу: http://www.ibase.ru/pslock/ В случае конфликта выполняется откат снапшота (если запись выполняется посредством нескольких SQL-операторов посредством rollback, если одним – commit, в базу всё равно ничего не записано, а rollback способствует росту разрыва OIT/OAT) и цикл повторяется. Из которой ненавязчиво следует вывод, что Rollback по каждому поводу делать нежелательно, а лучше где можно использовать Commit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2017, 13:26
|
|||
|---|---|---|---|
SavePoints и StoredProcedure |
|||
|
#18+
alekcvpчто Rollback по каждому поводу делать нежелательно, а лучше где можно использовать Commit. сервер все равно сделает коммит вместо роллбэка, - если в транзакции никаких изменений данных не было - если изменения были, но "мало" (где-то до 80 тысяч) - он их откатит по undo log - если undo log выключен. http://www.ibase.ru/mga/ Так что если нужен роллбэк - лучше делать роллбэк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2017, 13:35
|
|||
|---|---|---|---|
|
|||
SavePoints и StoredProcedure |
|||
|
#18+
kdvсервер все равно сделает коммит вместо роллбэка, - если в транзакции никаких изменений данных не было - если изменения были, но "мало" (где-то до 80 тысяч) - он их откатит по undo log - если undo log выключен. В последнем случае таки будет rollback. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2017, 13:37
|
|||
|---|---|---|---|
SavePoints и StoredProcedure |
|||
|
#18+
kdvсервер все равно сделает коммит вместо роллбэка, ... - если undo log выключен.??? 1. undo log невозможно выключить - можно отключить создание сейвпойнта уровня тр-ции, не больше и не меньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2017, 13:39
|
|||
|---|---|---|---|
SavePoints и StoredProcedure |
|||
|
#18+
alekcvpвывод, что Rollback по каждому поводу делать нежелательно, а лучше где можно использовать CommitБред чистой воды. Что делать - rollback или commit, должно определяться логикой приложения и ни чем иным. Только логикой, никакие "тайные знания" о внутренних механизмах СУБД тут не имеют право вмешиваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2017, 13:40
|
|||
|---|---|---|---|
|
|||
SavePoints и StoredProcedure |
|||
|
#18+
15.06.2017 13:39, hvlad пишет: > Что делать - rollback или commit, должно определяться логикой приложения и ни чем иным. > Только логикой, никакие "тайные знания" о внутренних механизмах СУБД тут не имеют право вмешиваться. +1 Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2017, 13:53
|
|||
|---|---|---|---|
SavePoints и StoredProcedure |
|||
|
#18+
hvlad, я имел в виду isc_tpb_no_auto_undo (и помню, что целиком undo-лог не отключается). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2017, 15:01
|
|||
|---|---|---|---|
SavePoints и StoredProcedure |
|||
|
#18+
kdvhvlad, я имел в виду isc_tpb_no_auto_undo (и помню, что целиком undo-лог не отключается).Я знаю, что ты имел в виду :) Но я совершенно не согласен с тем, как ты это написал. Ибо разные люди это читают и потом ссылаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2017, 15:17
|
|||
|---|---|---|---|
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, 16:06
|
|||
|---|---|---|---|
|
|||
SavePoints и StoredProcedure |
|||
|
#18+
kdv4. no_auto_undo не отключает undo log у транзакции, но отключает "склеивание" undo data от разных операторов. С точностью до наоборот: undo log операторов по-прежнему склеиваются, но результат не сливается с transaction undo log по одной простой причине, что тот вообще не создаётся. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&mobile=1&tid=1561533]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 282ms |
| total: | 439ms |

| 0 / 0 |
