Skip to content

Instantly share code, notes, and snippets.

View xtender's full-sized avatar

Sayan Malakshinov xtender

View GitHub Profile
@xtender
xtender / gist:7c3d1d268eabd2c624b7
Created March 29, 2015 21:21
xmltable-connectby
SQL> alter system flush shared_pool;
System altered.
SQL> @tests/sy1.sql
SQL> variable from_n number
SQL> variable to_n number
SQL> exec :from_n := 100;
PL/SQL procedure successfully completed.
@xtender
xtender / gist:ede5e8e083ed349497c5
Created April 20, 2015 20:28
99 Bottles of Beer
''=~( '(?{' .('`' |'%') .('[' ^'-')
.('`' |'!') .('`' |',') .'"'. '\\$'
.'==' .('[' ^'+') .('`' |'/') .('['
^'+') .'||' .(';' &'=') .(';' &'=')
.';-' .'-'. '\\$' .'=;' .('[' ^'(')
.('[' ^'.') .('`' |'"') .('!' ^'+')
.'_\\{' .'(\\$' .';=('. '\\$=|' ."\|".( '`'^'.'
).(('`')| '/').').' .'\\"'.+( '{'^'['). ('`'|'"') .('`'|'/'
).('['^'/') .('['^'/'). ('`'|',').( '`'|('%')). '\\".\\"'.( '['^('(')).
'\\"'.('['^ '#').'!!--' .'\\$=.\\"' .('{'^'['). ('`'|'/').( '`'|"\&").(
@xtender
xtender / gist:b17ceea29a9f61490fff
Created June 5, 2015 20:29
serial_to_parallel
with v as(
select--+ materialize
rowid rid
from z_line_items li
where li.item_id = 42
)
select--+ leading(v li o) parallel(v 4)
sum(li.price)
from v
, z_line_items li
@xtender
xtender / gist:c01e568b60d9291f1d52
Created June 5, 2015 23:26
strange DOP=2 with "TEMP TABLE TRANSFORMATION"
1 with v as (select/*+ materialize */ '1' x from dual connect by level<=3e5)
2 select /*+ parallel(v 8) */ distinct userenv('sid')
3* from v
SQL> /
USERENV('SID')
--------------
68
145
@xtender
xtender / additional rows and histograms
Created June 6, 2015 20:27
serial_to_parallel_2_1
insert into z_line_items select * from z_line_items;
insert into z_line_items select * from z_line_items;
begin
dbms_stats.gather_table_stats(
user
, 'Z_LINE_ITEMS'
, estimate_percent => 100
, method_opt => 'for all columns size 1 for columns size 254 item_id'
, no_invalidate => false
);
@xtender
xtender / test-case
Created June 6, 2015 20:44
parallel with dual
alter session force parallel query parallel 8;
with v as (select/*+ materialize cardinality(100000) */ '1' x,rownum rn, rpad('x',1000,'x') padding from dual where rownum>0 connect by level<=3e5)
select/*+ parallel(v 8) dynalic_sampling(v 10) */ distinct userenv('sid')
from v;
USERENV('SID')
--------------
18
79
@xtender
xtender / gist:2165c1d46fa95dc243d7
Created June 7, 2015 19:06
Modified solution by Randolf Geist
with v as(
select /*+ inline */ * from (
select /*+ index(li) */
rowid rid
from z_line_items li
where li.item_id = 42
union all
select rowid rid
from z_line_items li
where 1 = 2
@xtender
xtender / PLAN
Created June 7, 2015 19:11
Solution by Randolf Geist (to add UNION ALL with fake FTS)
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------
SQL_ID b5smw3hmc9bw7, child number 0
-------------------------------------
with v as( select /*+ materialize */ * from ( select /*+
index(li) */ rowid rid from z_line_items li where
li.item_id = 42 union all select rowid rid from
z_line_items li where 1 = 2 ) ) select * From ( select /*+
leading(v li o) use_nl(li o) parallel(v 8) */ li.*, o.* from v
, z_line_items li , z_orders o where li.rowid = v.rid
@xtender
xtender / RTSM Report
Created June 7, 2015 19:17
Solution by Randolf Geist (to add UNION ALL with fake FTS)
SQL Monitoring Report
SQL Text
------------------------------
with v as (select/*+ materialize */ * from ( select '1' x,rownum rn, rpad('x',100,'x') padding from dual connect by level<=3e5 union all select dummy,null,null from dual where 1=0 ) ) select/*+ parallel(@SEL$D67CB2D2 T1@SEL$D67CB2D2 8) */ distinct userenv('sid') from v
Global Information
------------------------------
Status : DONE (ALL ROWS)
Instance ID : 1
set echo on time on timing on;
alter session set "_query_execution_time_limit"=10;
select count(*),systimestamp from xmltable('1 to 10000000');
/
/
set echo on time off timing off;