Skip to content

Instantly share code, notes, and snippets.

View xtender's full-sized avatar

Sayan Malakshinov xtender

View GitHub Profile
@xtender
xtender / gist:e519ea15ed1ac8ef0148
Created January 22, 2015 17:37
PL/SQL: nvl vs coalesce
alter session set plsql_optimize_level=0;
declare
i integer;
a number :=1;
b number :=1;
l integer:=dbms_utility.get_time();
procedure print(v in varchar2) is
@xtender
xtender / gist:7d210be295cfe5bf3c5d
Created January 22, 2015 17:40
PL/SQL: NVL vs Coalesce - 2
alter session set plsql_optimize_level=0;
declare
i integer;
a number :=1;
b number :=1;
l integer:=dbms_utility.get_time();
procedure print(v in varchar2) is
@xtender
xtender / disj.sql
Created January 23, 2015 08:53
disj.sql
create table xt(
id number,
x number,
date1 date not null,
date2 date not null,
date3 date not null,
date4 date not null,
date5 date not null
);
@xtender
xtender / disj_spool.sql
Created January 23, 2015 09:04
disj spool
SQL> select/*+ full(xt) */ count(*)
2 from xt
3 where
4 date1 > trunc(sysdate) - 1 or
5 date2 > trunc(sysdate) - 1 or
6 date3 > trunc(sysdate) - 1 or
7 date4 > trunc(sysdate) - 1 or
8 date5 > trunc(sysdate) - 1;
COUNT(*)
@xtender
xtender / gist:d55c18f7380d3a3310a4
Created February 3, 2015 14:03
Trigger -> call -> NO_DATA_FOUND
SQL> create table xt_tab(i int);
Table created.
SQL> create or replace procedure xt_no_data_found(i int) as
2 begin
3 if i>0 then
4 raise NO_DATA_FOUND;
5 end if;
6 end;
@xtender
xtender / call_vs_exec.sql
Created February 3, 2015 14:53
call_vs_exec.sql
set feed on timing on echo on;
spool &_SPOOLS./call_vs_exec_spool.sql
create or replace procedure xt_proc(n in int, o out number) as
dummy number:=0;
begin
for i in 1..n loop
for j in 1..n loop
dummy:=dummy+ln(i+j);
end loop;
@xtender
xtender / call_vs_exec_spool.sql
Created February 3, 2015 14:55
call_vs_exec_spool.sql
SQL>
SQL> create or replace procedure xt_proc(n in int, o out number) as
2 dummy number:=0;
3 begin
4 for i in 1..n loop
5 for j in 1..n loop
6 dummy:=dummy+ln(i+j);
7 end loop;
8 end loop;
9 o:=dummy;
@xtender
xtender / gist:dcc7f40071dcc2fd2614
Created March 13, 2015 20:55
parallel-px-real time sql monitoring
SQL> with t as (select/*+ materialize */ level id from dual connect by level<=1e3)
2 select/*+ parallel(t) */ count(*) from t;
COUNT(*)
----------
1000
1 row selected.
SQL> @find_sql "with t as (select/*+ materialize%"
@xtender
xtender / gist:c024cd87ff86cb213c94
Created March 13, 2015 21:11
parallel-px-real time sql monitoring-2
SQL> alter system set parallel_max_servers=4;
System altered.
SQL> select /*+ PARALLEL */ count(*) from Large_Table;
COUNT(*)
----------
100000
@xtender
xtender / gist:a5296cf0949d19c38c65
Created March 16, 2015 21:52
optimizer_inmemory_aware=false/true
SQL> alter session set optimizer_inmemory_aware=true;
Session altered.
SQL> select count(*) from t_inmemory;
COUNT(*)
----------
342458