Hi,
You can resolve this problem in different way.
1. One of the easiest way, if feel is to lock the table exclusively and do the delete operation, assuming that you can cease table in this mode and have ample logical log area to record the changes.
begin;
set lock mode to wait;
lock table table_a in exclusive mode;
delete from table_a where group_id < 1350000;
select 'Rows deleted:', dbinfo('sqlca.sqlerrd2') from systables where tabid=1;
commit;
2. Identify the rowids and delete single row at a time.
output to 'deljob.sql' without headings select 'delete from table_a where rowid=',rowid,' ;' from table_a ;
dbaccess testdb deljob.sql
3. Your business logic comes handy this time. Select rows for deletion for lesser range in multiplicity.
delete from table_a where group_id between 1 and 200000;
select 'Rows deleted:', dbinfo('sqlca.sqlerrd2') from systables where tabid=1;
delete from table_a where group_id between 200000 and 400000;
select 'Rows deleted:', dbinfo('sqlca.sqlerrd2') from systables where tabid=1;
delete from table_a where group_id between 400000 and 600000;
select 'Rows deleted:', dbinfo('sqlca.sqlerrd2') from systables where tabid=1;
so on ...
Regards,
Shriyan