Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: fire off multiple dbms_stats.gather_schema
David
Oops, I read your posting more closely and it looks as if you are only gathering statistics on tables that don't have any. Am I reading that correctly. Also, you might want to consider the SAMPLE SIZE AUTO. With a fixed percentage you may be undersampling small tables and oversampling large ones.
Dennis Williams
DBA
Lifetouch, Inc.
dwilliams_at_lifetouch.com
I said it "looked" clear - Riddick
-----Original Message-----
From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org]On Behalf Of DENNIS WILLIAMS
Sent: Thursday, July 08, 2004 .10:50 AM
To: 'oracle-l_at_freelists.org'
Subject: RE: fire off multiple dbms_stats.gather_schema
David
Dumb question. I always understood that: "Whenever possible, dbms_stats routines will run via parallel query". Is there a reason this doesn't work for you?
Another idea. Instead of making dbms_stats run faster, consider whether you are spending too many resources analyzing. dbms_stats can use the GATHER STALE option. I think Wolfgang Breitling has stated that once his queries are operating satisfactorily he doesn't gather statistics any more.
Dennis Williams
DBA
Lifetouch, Inc.
dwilliams_at_lifetouch.com
I said it "looked" clear - Riddick
-----Original Message-----
From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org]On Behalf Of David
Sent: Wednesday, July 07, 2004 5:42 PM
To: oracle-l_at_freelists.org
Subject: fire off multiple dbms_stats.gather_schema
I am using dynamic sql to generate code that will analyze schemas. I would just gather_database stats, but the request is that I use dbms_stats.gather_Schema so that the process can be broken down into concurrent sets and run concurrently(and with parallel). Does anyone have any advice, ideas or tips on how I might accomplish this?
Here is what I'm currently using:
select
'exec dbms_stats.gather_schema_stats(ownname=> ' ||chr(39)||
owner||chr(39)||' ,estimate_percent=> 10 ,cascade=> TRUE , block_sample=>
TRUE ,degree=> 4);'
FROM DBA_TABLES
WHERE OWNER NOT IN ('SYS')
AND PARTITIONED = 'NO'
AND LAST_ANALYZED < SYSDATE - 14
UNION
select
'exec dbms_stats.gather_schema_stats(ownname=> ' ||chr(39)||
owner||chr(39)||' , estimate_percent=> 10 ,cascade=> TRUE , block_sample=>
TRUE ,degree=> 4);'
FROM DBA_TABLES
WHERE OWNER NOT IN ('SYS')
AND LAST_ANALYZED IS NULL;
Yes, I do know that the options clause will take care of some of the
functionality that I am filtering via the predicate and I have plans to
incorporate that feature.
Thanks!
--
..
David
FAQ is at http://www.freelists.org/help/fom-serve/cache/1.htmlput 'unsubscribe' in the subject line.
-----------------------------------------------------------------
----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to: oracle-l-request_at_freelists.org
FAQ is at http://www.freelists.org/help/fom-serve/cache/1.htmlput 'unsubscribe' in the subject line.
-----------------------------------------------------------------
----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to: oracle-l-request_at_freelists.org
![]() |
![]() |