Database Reference
In-Depth Information
Setzen wir unser Beispiel fort. Dafür füllen wir die Tabelle T1 erneut mit den Daten.
SQL> truncate table test1.t1;
SQL> insert into test1.t1(a,b,c,d,e,f) select null,null,null,null,null,null from dual connect
by level <= 10000;
SQL> insert into test1.t1 select mod(level,50), level*10, level*100, level*1000, level*10000,
level*100000 from dual connect by level <= 100000;
SQL> delete from test1.t1 where a between 20 and 40 and rownum <= 30000;
SQL> commit;
SQL> exec dbms_stats.gather_table_stats('TEST1', 'T1')
L.: „ Danach setzen wir die Parameter des Skripts estimate_sparse_norm_idx10g.sql und
führen dieses Skript aus. Die Ausgabe besteht aus 2 Teilen. Der erste Teil sieht ähnlich der
Ausgabe des Skripts sparse_norm_idx9i.sql aus. Im zweiten Teil wird die andere Dichte aus-
gegeben: das Verhältnis zwischen der Anzahl der Leaf-Blöcke und der Anzahl der allozierten
Index-Blöcke, um die Indices mit vielen leeren Leaf-Blöcken zu ermitteln.
SQL> define index_owner='TEST1'
SQL> define index_name='I_T1'
SQL> define only_without_stats='n'
SQL> define sample_percent=100
SQL> define density=100
SQL>
SQL> set echo off
Sparse Indexes:
INDEX_NAME DENSITY EXTRA_LEAF_BLOCKS LEAF_DENSITY LEAF_BLOCKS
BLOCKS BLOCK_SIZE LAST_DDL_TIME LAST_ANALYZED COMPRESSION
---------------------------------------- -------- ----------------- ------------- -----------
---------- ---------- ------------- ------------- -----------
TEST1.I_T1 57.38% 205 62.63% 481
768 8192 11.06.2013 11.06.2013 DISABLED
Indexes odered by Leaf Density (to determine Indexes with a lot of empty Blocks):
INDEX_NAME LEAF_DENSITY LEAF_BLOCKS BLOCKS BLOCK_SIZE
LAST_DDL_TIME LAST_ANALYZED
---------------------------------------- ------------- ----------- ---------- ---------- -----
-------- -------------
TEST1.I_T1 62.63% 481 768 8192
11.06.2013 11.06.2013
P.: „ Wie genau sind diese Schätzungen?
L.: „ Bauen wir den Index I_T1 um und berechnen danach die Optimizer-Statistiken, um
zu ermitteln, wie viele Leaf-Blöcke nach dem Index-Umbau entstanden sind.
SQL> alter index test1.i_t1 rebuild online;
SQL>
SQL> exec dbms_stats.gather_table_stats('TEST1', 'T1')
SQL>
SQL> select leaf_blocks from dba_ind_statistics where owner='TEST1' and index_name='I_T1';
LEAF_BLOCKS
-----------
280
P.: „ Das Skript hat die Anzahl der Leaf-Blöcke nach dem Index-Umbau als 481 − 205 = 276
geschätzt. Das ist ja ziemlich genau!
Search WWH ::




Custom Search