2010-09-01 3 views
9

У меня есть таблица, которая имеет примерно полмиллиона строк, и я хотел бы удалить все строки.Как эффективно удалить все строки из таблицы в DB2

Если я делаю простой delete from tbl, журнал транзакций заполняется. В этом случае мне не нужны транзакции, я не хочу откатываться в любом случае. Я мог бы удалять строки во многих транзакциях, но есть ли какие-нибудь способы?

Как эффективно удалить все строки из таблицы в DB2? Можно ли как-то отключить транзакции для этой команды или есть специальные команды для этого (например, truncate в MySQL)?

После того, как я удалил строки, я запишу базу данных с таким же количеством новых данных.

ответ

14

Кажется, что следующая команда works в новых версиях DB2.

TRUNCATE TABLE someschema.sometable IMMEDIATE 
7

Чтобы усечь таблицу в DB2, просто написать:

alter table schema.table_name activate not logged initially with empty table 

Из того, что я был в состоянии читать, это будет удалить содержимое таблицы, не делая каких-либо протоколирования, который будет идти намного легче на I вашего сервера/вывода.

+1

Это может не работать в среде с реплицируемым/hadr из-за отсутствия регистрации. –

+1

Это очень полезный ответ для тех, кто нуждается в очистке таблицы от версий DB2, у которых нет инструкции TRUNCATE TABLE. –

Смежные вопросы