Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Транзакции с точкой сохранения  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2791
begin transaction;                            -- line1
...
begin transaction; save transaction aaa;      -- line2
...
rollback transaction aaa; commit transaction; -- line 3
...
commit transaction;                           -- line4

Понятно, что команда в line4 вызовет запись на диск в журнал транзакций.
Вопрос: будет ли запись на диск после комманд в line2 и line3?
Принудительных отложенных транзакций нет.
22 сен 17, 14:44    [20816098]     Ответить | Цитировать Сообщить модератору
 Re: Транзакции с точкой сохранения  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
Prolog
Понятно, что команда в line4 вызовет запись на диск в журнал транзакций.
отнюдь, не вызовет
22 сен 17, 15:30    [20816414]     Ответить | Цитировать Сообщить модератору
 Re: Транзакции с точкой сохранения  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
Prolog
Вопрос: будет ли запись на диск после комманд в line2 и line3?
если совсем сферически, то ни одна из этих комманд не вызовет запись в лог.
запись в лог будет между line1 и line2, например, в момент первого инсерта или тп.
22 сен 17, 15:33    [20816427]     Ответить | Цитировать Сообщить модератору
 Re: Транзакции с точкой сохранения  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
Prolog,

хотите запись на диск пишите checkpoint
22 сен 17, 15:34    [20816441]     Ответить | Цитировать Сообщить модератору
 Re: Транзакции с точкой сохранения  [new]
o-o
Guest
WarAnt
Prolog,

хотите запись на диск пишите checkpoint

...и на диск сбросится то, что в логе накопилось, но еще не сбросилось.
а то, чего там и не было (как в случае ТС), не запишется все равно
22 сен 17, 15:38    [20816469]     Ответить | Цитировать Сообщить модератору
 Re: Транзакции с точкой сохранения  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2791
Мне бы, наоборот, хотелось, чтобы до конечного commit'а записей на диск было меньше.
22 сен 17, 16:12    [20816691]     Ответить | Цитировать Сообщить модератору
 Re: Транзакции с точкой сохранения  [new]
invm
Member

Откуда: Москва
Сообщений: 9347
Prolog
Вопрос: будет ли запись на диск после комманд в line2 и line3?
Может будет, а может и не будет.

Физическая запись в ЖТ тоже буферизуется. Этот буфер сбрасывается на диск при его переполнении или при фиксации транзакции.

Итого (если считать, что до line1 открытых транзакций нет):
line1 - в ЖТ ничего не пишется.
line2 - в ЖТ запишется save transaction aaa. Возможно при этом буфер ЖТ будет сброшен на диск.
line3 - при rollback transaction aaa в ЖТ запишется компенсация всех операций, произошедших после line2. Возможно при этом буфер ЖТ будет сброшен на диск.
line4 - в ЖТ запишется commit. Буфер ЖТ будет сброшен на диск.
22 сен 17, 16:49    [20816879]     Ответить | Цитировать Сообщить модератору
 Re: Транзакции с точкой сохранения  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2791
invm, cпасибо!

Примерно нечто такое я и предполагал. Для меня важно понять, что операции по line2 и line3 не будут приводить к принудительному и незамедлительному сбросу на диск.
23 сен 17, 09:20    [20817760]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить