Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 DELETE и переполнение журнала транзакций  [new]
GarF1eld!
Member

Откуда:
Сообщений: 27
Пытаюсь удалить из таблиы записи (247671 штук)
DELETE
FROM L
WHERE LD < TIMESTAMP('2010-04-01');
Получаю
DB2 Database Error: ERROR [57011] [IBM][DB2/NT] SQL0964C  The transaction log for the database is full.  SQLSTATE=57011
Можно ли это обойти? или только увеличивать размер лога?
6 май 10, 20:42    [8738654]     Ответить | Цитировать Сообщить модератору
 Re: DELETE и переполнение журнала транзакций  [new]
Ivan Ivanich
Member

Откуда:
Сообщений: 187
А как ты обойдёшь? База ведь пишет их в журнал, что бы откатиться в случае чего. Так что или сужай критерий where или увеличивай журнал или пиши хитрую процедуру которая будет удалять по частям и делать commit через каждые ну допустим 10000 записей.
7 май 10, 07:44    [8739546]     Ответить | Цитировать Сообщить модератору
 Re: DELETE и переполнение журнала транзакций  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4947
GarF1eld!,

Воспользуйтесь хитрой процедурой:
call huge_change('select 1 FROM L WHERE LD < TIMESTAMP(''2010-04-01-00.00.00'')', 'delete from L', 1000, ?)
Она будет делать commit после удаления каждой 1000 записей.
7 май 10, 10:32    [8740329]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить