Database Reference
In-Depth Information
SQL> create table t1 as select mod(level,3000) a, level + 1000 b, level + 100000 c from dual
connect by level <= 10000;
Table created.
SQL> insert into t1(a,b,c) select 50, 50, 50 from dual connect by level <= 1000;
1000 rows created.
SQL> commit;
Commit complete.
SQL> select blocks from user_segments where segment_name='T1';
BLOCKS
----------
32
SQL> create index i_t1 on t1(a);
Index created.
SQL> exec dbms_stats.gather_table_stats(user,'T1', method_opt=>'for all columns size 254')
PL/SQL procedure successfully completed.
SQL> select blocks from user_tables where table_name='T1';
BLOCKS
----------
30
Da die Tabelle klein ist, setzen wir den Parameter _ optimizer _ dyn _ smp _ blks auch entspre-
chend klein, um zu zeigen, wie Oracle diesen Parameterwert in den Prozentsatz für die
Klausel SAMPLE BLOCK der für Dynamic Sampling generierten SQL-Anweisung um-
wandelt (für kleine Tabellen benutzt Oracle keine Klausel SAMPLE BLOCK). In diesem
Beispiel wird der Level 4 für Dynamic Sampling benutzt.
SQL> alter session set "_optimizer_dyn_smp_blks"=5;
Session altered.
SQL> alter session set optimizer_dynamic_sampling=4;
Session altered.
Wenn wir das SQL-Tracing bei der Ausführung von „select count(*) from t1 where a = 50
and b = 50“ anschalten, finden wir den folgenden Abschnitt in der Trace-Datei.
Search WWH ::




Custom Search