ORACLE: dbms_stats.gather_schema_stats
Im Gegensatz zur Oracle 8i verläßt sich der CBO (Cost Based Optimizer)
in der 9i oder 10g noch viel mehr auf die Statistiken über Tabellen,
Indizies, usw. Deshalb sollten die auch immer möglichst aktuell sein
bzw. aktuallisiert werden, wenn sich viel geändert hat, damit die
Ausführungspläne möglichst optimal berechnet werden können, was
natürlich der Performance zu Gute kommt.. In der 8i hat
sich immer wieder mal die Frage gestellt: "Welchen Wert nehm ich jetzt
für
estimate_percent, welchen für das, usw.?". Seit der 9i kann man diese
Fragen nun z.T. der Datenbank überlassen. Möchte man z.B. ganzes Schema
samplen, kann man folgende Prozedur ausführen:
exec dbms_stats.gather_schema_stats(ownname => '<SCHEMANAME>',estimate_percent =>
dbms_stats.auto_sample_size,method_opt=>'for all columns size auto', cascade=>true);
<SCHEMANAME> natürlich durch das zu analysierende Schema ersetzen. Mehr dazu: Oracle9i Optimizer Statistics Collection Enhancements
Das Ganze funkt natürlich auch mit einzelnen Tabellen:
exec dbms_stats.gather_table_stats(ownname=>'<SCHEMANAME>', tabname=>'<TABELLENNAME>',estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE,cascade=>true);
Posted at 08:30nachm. Aug. 08, 2005 by cetixx in Tipps | Kommentare [0]