Guten Tag
Ich habe eine Frage zu Extended Statistics. Es geht um ein Verständnisproblem.
Ich erstelle folgende Tabelle
create table juerg as select * from dba_tables;
Ich erstelle Statistiken mit Extended Statistiken über Owner, Tablespace. Dies da diese Felder im Normalfall eine nicht gleichmässige Verteilung haben.
exec dbms_stats.gather_table_stats
(ownname =>'SYSTEM', tabname =>'JUERG', method_opt =>'for all columns size auto for columns(owner,tablespace_name) size skewonly'
,estimate_percent=>100);
Ich frage ab wieviele Rows owner und TS=SYSTEM haben
select count (*) from juerg where owner='SYSTEM' and tablespace_name ='SYSTEM' (82 Rows)
Ich prüfe ob es in den Histogrammen ein Wert mit 82 Einträgen gibt und finde diesen mit folgendem Statement
select endpoint_number,endpoint_number-lag(endpoint_number,1,0) over (order by endpoint_number) as diff
from dba_tab_histograms where owner='SYSTEM' and table_name ='JUERG' and column_name like 'SY%';
Ich parse folgendes Statement
select * from juerg where owner='SYSTEM' and tablespace_name ='SYSTEM'
Oracle gibt mir bei Cardinality nun 70 anstelle den erwarteten 82 zurück. Was habe ich hier falsch verstanden ?
Besten Dank
Ich habe eine Frage zu Extended Statistics. Es geht um ein Verständnisproblem.
Ich erstelle folgende Tabelle
create table juerg as select * from dba_tables;
Ich erstelle Statistiken mit Extended Statistiken über Owner, Tablespace. Dies da diese Felder im Normalfall eine nicht gleichmässige Verteilung haben.
exec dbms_stats.gather_table_stats
(ownname =>'SYSTEM', tabname =>'JUERG', method_opt =>'for all columns size auto for columns(owner,tablespace_name) size skewonly'
,estimate_percent=>100);
Ich frage ab wieviele Rows owner und TS=SYSTEM haben
select count (*) from juerg where owner='SYSTEM' and tablespace_name ='SYSTEM' (82 Rows)
Ich prüfe ob es in den Histogrammen ein Wert mit 82 Einträgen gibt und finde diesen mit folgendem Statement
select endpoint_number,endpoint_number-lag(endpoint_number,1,0) over (order by endpoint_number) as diff
from dba_tab_histograms where owner='SYSTEM' and table_name ='JUERG' and column_name like 'SY%';
Ich parse folgendes Statement
select * from juerg where owner='SYSTEM' and tablespace_name ='SYSTEM'
Oracle gibt mir bei Cardinality nun 70 anstelle den erwarteten 82 zurück. Was habe ich hier falsch verstanden ?
Besten Dank
Comment