Oracle Tips by Mike Ault
Recalculation of Table Statistics
One job that can be onerous is the recalculation
of the table statistics that are used by the cost based optimizer.
If the statistics are not kept up to date the cost based optimizer
will make bad choices as to optimization paths resulting in poor
performance or even bad results. Usually tables are being analyzed
either by a shotgun procedure that just analyzes all tables in the
application on a periodic basis, or, on a catch as catch can basis
when the Remote DBA gets a spare evening. The procedure in Figure 6 can be
used to look at the gross contents of a table (based on the actual
row count verses the stored row count in the Remote DBA_TABLES view) and
determine if the table has changed by a specified percent, if so, it
is re-analyzed. The procedure also determines from the row count
data if the table is a large table and if so, uses a sampling
analysis instead of a full calculation.
check_tables (owner_name in varchar2) AS
CURSOR get_tab_count (own varchar2) IS
SELECT table_name, nvl(num_rows,1)
FROM Remote DBA_tables
SEE CODE DEPOT FOR FULL SCRIPTS
For more information on this topic, I recommend Don
Burleson's latest book "Oracle
Tuning: The Definitive Reference".
You can buy it direct from the publisher for 50%-off and get
instant access to the code depot of Oracle tuning scripts:
Expert Remote DBA
BC is America's oldest and largest Remote DBA Oracle support
provider. Get real Remote DBA experts, call
BC Remote DBA today.