Deletion Strategy
It is recommended that records be purged in the following order to avoid referential integrity issues. For more information, see Suggested Order of Tables for Purge.
Once a process or utility has identified a set of objects that can be purged it must execute a series of SQL to delete associated records.
- DELETE FROM ERROR WHERE OBJ_ID IN (<id list>)
- DELETE FROM COUNTER WHERE OBJ_ID IN (<id list>)
- DELETE FROM OBJ_VALUE WHERE OBJ_ID IN (<id list>)
- DELETE FROM OBJ_OBJ_REL WHERE OBJ1_ID IN (<id list>)
- DELETE FROM OBJ_OBJ_REL WHERE OBJ2_ID IN (<id list>)
- DELETE FROM H_OBJ_BASE WHERE ID IN (<id list>)
- DELETE FROM TXN_PAYMENT_BASE WHERE OBJ_ID IN (<id list>)
- DELETE FROM TRANSACTION_BASE WHERE OBJ_ID IN (<id list>)
- DELETE FROM TXN_ SECURITIES _BASE WHERE OBJ_ID IN (<id list>)
- DELETE FROM TRANSACTION_BASE WHERE OBJ_ID IN (<id list>)
- DELETE FROM TRANSACTION_BASE WHERE OBJ_ID IN (<id list>)
- DELETE FROM BATCH_BASE WHERE OBJ_ID IN (<id list>)
- DELETE FROM TRANSMISSION_BASE WHERE OBJ_ID IN (<id list>)
- DELETE FROM OBJ_BASE WHERE ID IN (<id list>)
- TXN_PAYMENT
- TXN_SECURITIES
- TRANSACTION
- BATCH
- TRANSMISSION
This is because:
TXN_PAYMENT_BASE & TXN_SECURITIES_BASE table records reference TRANSACTION_BASE records. TRANSACTION_BASE records reference TRANSMISSION_BASE records and may reference BATCH_BASE records. BATCH_BASE records may reference TRANSMISSION_BASE records
It is important to note that large scale deletes drive significant workload on the database transaction logs. Transaction logs have a finite size limit (determined by database settings) and regular commits must be issued during delete cycles to keep within the limits.