|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
FB 2.5.8 SS есть длительная процедура по переносу данных из резервной БД в основную, выполняемая в snapshot транзакции, в конце которой в execute statement очищаются переданные таблицы. Параллельно ей, в эти таблицы данные добавляются. Могут ли удалиться данные добавленный после старта транзакции? (Судя по доке для execute statement может стартовать отдельная транзакция) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 13:15 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
25.06.2019 13:15, vvvait пишет: > для execute statement может стартовать отдельная транзакция только если ты сам этого захочешь Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 13:23 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
vvvait, EXECUTE STATEMENT Насколько я понимаю написанное Description: Traditionally, the executed SQL statement always ran within the current transaction, and this is still the default. WITH AUTONOMOUS TRANSACTION causes a separate transaction to be started, with the same parameters as the current transaction. It will be committed if the statement runs to completion without errors and rolled back otherwise. WITH COMMON TRANSACTION uses the current transaction if possible. If the statement must run in a separate connection, an already started transaction within that connection is used, if available. Otherwise, a new transaction is started with the same parameters as the current transaction. Any new transactions started under the “COMMON” regime are committed or rolled back with the current transaction. то волноваться не стоит ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 13:25 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
по умолчанию какая транзакция используется ? WITH COMMON TRANSACTION uses the current transaction if possible ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 13:28 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
vvvait, читай doc\sql.extensions\README.execute_statement2 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 14:04 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
hvlad, a) started new transaction with the same parameters as current transaction, or b) used already started transaction in this connection, or c) used current transaction if current connection is used. - by default COMMON TRANSACTION is used Вопрос остаётся. если для выполнения очистки стартует новая транзакция, увидит ли она добавленные в других коннектах записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 14:56 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
vvvaitесли для выполнения очистки стартует новая транзакция, увидит ли она добавленные в других коннектах записи?Если это тр-ция snapshot, то конечно же не увидит. Проверить самому не легче\быстрее, чем тут очевидных ответов ждать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 15:10 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
vvvait, Traditionally, the executed SQL statement always ran within the current transaction, and this is still the default. Не пиши никакого with (ни common, ни autonomous), и будет эта же самая транзакция. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 16:59 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
vvvait, мне интересно, зачем читать по английски, если исходно документация на русском языке? http://www.ibase.ru/files/firebird/langref25rus/index.html#d0e23199 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 17:03 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
kdv, Ну так гугл на поиск "execute statement firebird" первые же ссылки на firebirdsql.org ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 17:36 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
25.06.2019 17:36, m7m пишет: > Ну так гугл на поиск... а ты не пользуй сионистский гугель. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 17:43 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
С причиной потерянных записей я разобрался, оказалось что один "хороший" человек использовал TpFIBTransaction вместо TFIBTransaction как везде. У неё снапшот устанавливается через TPBMode, а не через TRParams, поэтому вместо снапшота был read_commited. Пришлось в процедуру добавить проверку, что транзакция snapshot. С предложением WITH COMMON TRANSACTION по возможности используется текущая транзакция. тут не понятно, при каких условиях будет запущена новая транзакция, и если она будет запущена на 10 минут позже основной, будет ли она также не видеть добавленные записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 17:54 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
vvvait, причём тут раньше-позже? Это предложение относится скорее всего к специальным операторам и EXTERNAL DATA SOURCE. При запуске обычных DML с текущей БД и под текущим пользователем без предложения WITH AUTONOMOUS TRANSACTION всегда будет выполняться в текущей транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 18:42 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
А "назачем там нужен execute statement" так никто и не спросит?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 18:46 |
|
снапшот транзакция для execute statement
|
|||
---|---|---|---|
#18+
25.06.2019 18:46, Dimitry Sibiryakov пишет: > А "назачем там нужен execute statement" так никто и не спросит?.. подозреваю "обобщенный решатель задач", с динамическим формированием SQL Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 18:48 |
|
|
start [/forum/topic.php?fid=40&fpage=22&tid=1560679]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 156ms |
0 / 0 |