2026-03-12 21:01:38
This commit is contained in:
85
histograms/histogram_04.txt
Normal file
85
histograms/histogram_04.txt
Normal file
@@ -0,0 +1,85 @@
|
||||
drop table T1 purge;
|
||||
|
||||
create table T1 tablespace USERS as
|
||||
select
|
||||
rownum id,
|
||||
case when rownum<10 then mod(rownum,4) else 999 end col1
|
||||
from ( select 1 just_a_column
|
||||
from DUAL
|
||||
connect by level <= 20
|
||||
)
|
||||
/
|
||||
|
||||
|
||||
|
||||
drop table T2 purge;
|
||||
|
||||
create table T2 tablespace USERS as
|
||||
select
|
||||
rownum id,
|
||||
case when rownum<25 then mod(rownum,10) else 999 end col1
|
||||
from ( select 1 just_a_column
|
||||
from DUAL
|
||||
connect by level <= 100
|
||||
)
|
||||
/
|
||||
|
||||
exec dbms_stats.gather_table_stats(user,'T1', method_opt=>'for all columns size 1');
|
||||
exec dbms_stats.gather_table_stats(user,'T2', method_opt=>'for all columns size 1');
|
||||
|
||||
alter system flush shared_pool;
|
||||
|
||||
drop table Q purge;
|
||||
create table Q as
|
||||
select /*+ GATHER_PLAN_STATISTICS */
|
||||
T1.ID id1
|
||||
, T2.ID id2
|
||||
, T1.COL1 val
|
||||
from
|
||||
T1,
|
||||
T2
|
||||
where
|
||||
T1.COL1=150
|
||||
and T1.COL1=T2.COL1
|
||||
/
|
||||
|
||||
|
||||
select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST +PEEKED_BINDS +PARALLEL +PARTITION +COST +BYTES'));
|
||||
|
||||
|
||||
exec dbms_stats.gather_table_stats(user,'T1', method_opt=>'for all columns size 1');
|
||||
exec dbms_stats.gather_table_stats(user,'T2', method_opt=>'for all columns size 1');
|
||||
|
||||
exec dbms_stats.delete_table_stats('SYS','T1');
|
||||
exec dbms_stats.delete_table_stats('SYS','T2');
|
||||
|
||||
exec dbms_stats.gather_table_stats(user,'T1', method_opt=>'for all columns size SKEWONLY');
|
||||
exec dbms_stats.gather_table_stats(user,'T2', method_opt=>'for all columns size SKEWONLY');
|
||||
|
||||
|
||||
alter system flush shared_pool;
|
||||
|
||||
|
||||
select /*+ GATHER_PLAN_STATISTICS */
|
||||
T1.ID
|
||||
, T2.ID
|
||||
, T1.COL1
|
||||
from
|
||||
T1,
|
||||
T2
|
||||
where
|
||||
T1.COL1=3
|
||||
and T1.COL1=T2.COL1
|
||||
/
|
||||
|
||||
|
||||
select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST +PEEKED_BINDS +PARALLEL +PARTITION +COST +BYTES'));
|
||||
|
||||
|
||||
@stats_col SYS T1 % % % %
|
||||
@stats_col SYS T2 % % % %
|
||||
|
||||
|
||||
@hist_cross_freq SYS T1 COL1 SYS T2 COL2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user