Re: Question on global index maintenance
- From: Andy Klock <andy@xxxxxxxxxxxxx>
- To: jlewisoracle@xxxxxxxxx
- Date: Sat, 08 Jan 2022 21:14:15 +0000
Hi Jonathan,
On Saturday, January 8th, 2022 at 12:39 PM, Jonathan Lewis
<jlewisoracle@xxxxxxxxx> wrote:
"ORA-00600: internal error code, arguments: [GKL-heap-size-exceeded]"
Was that a typo for "KGL..."
Yes, nice catch. I just copied and pasted from my notes and didn't even notice
that. In my editor I do "C-c t" a lot, but depending on where my cursor is, I
sometimes end up typing "C-t" which transposes characters. This is handy when
you need to do this and embarrassing when you don't.
Parse error or DDL error relating to objects with many partitions?
The ORA-600 were parse errors when a particular report would run that required
that index. It's possible that they no longer happen since they did eventually
upgrade to 18c.
partial cleaning to stop - a bit like an "alter index coalesce" (Have you
done any experiments with "alter index coalesce cleanup" to see if uses one
transaction or many, and if it can be aborted without rolling back and
without locking the table.)
Yes, and the coalesce cleanup commands run with a "parallel 32" for each
statement (about 30 indexes need to be handled this way). But it is true, if a
transaction is killed before completing, Oracle doesn't roll those back so it
will start where it left off. The default maintenance job that the OP
referenced earlier behaves similarly. Meaning, by the third or fourth day of
running the maintenance job, some of the _huge_ indexes would eventually
complete and move on to the next one, but because of the shear number of
indexes that needed to be cleaned Oracle was never able to keep up with the job
alone. One of the 12.1 PSUs included functionality to configure parallelism on
that procedure, but it didn't help so we wrote our own, which Support conceded
was the correct approach for our situation.
Andy K
Other related posts: