On 3/8/24 08:22, David Gauthier wrote:
> Here's the situation....
>
> - The DB contains data for several projects.
> - The tables of the DB contain data for all projects (data is not
> partitioned on project name or anything like that)
> - The "project" identifier (table column) exists in a few "parent"
> tables with many child... grandchild,... tables under them connected
> with foreign keys defined with "on delete cascade". So if a record in
> one of the parent table records is deleted, all of its underlying,
> dependent records get deleted too.
How many "... child... grandchild,... tables" ?
Do these tables constitute all the tables in the database?
> Related question...
> The "delete from par_tbl_a where project <> 'a' " is taking forever. I
> fear it's because it's trying to journal everything in case I want to
> rollback. But this is just in the archive DB and I don't mind taking
> the risk if I can speed this up outside of a transaction. How can I run
> a delete command like this without the rollback recovery overhead ?
I am assuming that at the point you do "delete from par_tbl_a where
project <> 'a' " project a is no longer receiving data and its records
are static. Further assuming there is a PK that you could order by, then
it would seem the way to go would be to delete in batches as determined
by the PK.
--
Adrian Klaver
adrian.klaver@aklaver.com