Thanks for the question, Bennaceur.
Asked: March 09, 2026 - 5:55 pm UTC
Last updated: March 10, 2026 - 3:51 am UTC
Version: 19c update 22
You Asked
Hello,
I have a question regarding concurrent statistics gathering in Oracle 19c. Currently, my global preference is set to OFF:
SELECT DBMS_STATS.GET_PREFS('CONCURRENT') FROM DUAL;
-- Result: OFF
I can enable it manually with:
BEGIN
DBMS_STATS.SET_GLOBAL_PREFS('CONCURRENT','ALL');
END;
/
I understand that enabling CONCURRENT allows Oracle to gather statistics on multiple tables and (sub)partitions at the same time, potentially reducing the total duration. Oracle uses the Job Scheduler and Advanced Queuing to manage these concurrent jobs.
My question:
Is there a relationship between the maintenance windows (like WEEKEND_WINDOW or WEEKNIGHT_WINDOW) and concurrent statistics gathering? Specifically:
When CONCURRENT is enabled, does Oracle automatically schedule these parallel stats jobs within the maintenance windows?
Or is the maintenance window unrelated, and the concurrent gathering runs independently of it?
Thank you for your guidance.
and Connor said...
Maintenance windows are still respected (assuming you are using the standard auto-task infrastructure to launch your optimizer jobs). Of course, if you manually launched (say) a schema gather, then it would be run right there and then.
So all the normal rules apply in terms of start/stop timings - it just means you'll be launching multiple sessions (jobs) to gather stats during the window.
An excellent post on this here
https://blogs.oracle.com/optimizer/how-to-gather-optimizer-statistics-fast