ืืื!
ืืชืืจืืืื 24-25 ืืืื ื ืืชืงืืื ืื ืก Highload++ Siberia 2019 ืื ืืืืกืืืืจืกืง. ืื ืืืืจ'ื ืฉืื ื ืืื ืฉื
ืืคืืกื ืืื, ืืจืฆืื ื ื ืืฉืชืฃ ืืชืื ืืืขืืืช ืฉืืื ืื ื ืืืืื ืฉืื ื ืืื ืฉืชืืืื ืืืืืง ืืช ืืืืข ืฉืืื ื-Oracle. ืืชืืช ืืืืชืื 8 ืืขืืืช, ืืคืฉืจืืืืช ืชืฉืืื ืืืกืืจ.
ืืื ืขืจื ืืจืฆืฃ ืืืงืกืืืื ืฉื ืจืื ืืชืืฆืื ืืืืฆืืข ืืกืงืจืืคื ืืื?
create sequence s start with 1;
select s.currval, s.nextval, s.currval, s.nextval, s.currval
from dual
connect by level <= 5;
- 1
- 5
- 10
- 25
- ืื, ืชืืื ืฉืืืื
ืชืฉืืืืขื ืคื ืชืืขืื ืฉื ืืืจืงื (ืืฆืืื ื-8.1.6):
ืืชืื ืืฉืคื SQL ืืืื, ืืืจืงื ืชืืืื ืืช ืืจืฆืฃ ืจืง ืคืขื ืืืช ืืื ืฉืืจื. ืื ืืฆืืจื ืืืืื ืืืชืจ ืืืคื ืื ืืืช ื-NEXTVAL ืขืืืจ ืจืฆืฃ, ืืืจืงื ืืืืืื ืืช ืืจืฆืฃ ืคืขื ืืืช ืืืืืืจื ืืช ืืืชื ืืขืจื ืขืืืจ ืื ืืืืคืขืื ืฉื NEXTVAL. ืื ืืฆืืจื ืืืืื ืืคื ืืืช ืื ื-CURRVAL ืืื ื-NEXTVAL, ืืืจืงื ืืืืืื ืืช ืืจืฆืฃ ืืืืืืจื ืืช ืืืชื ืืขืจื ืื ื-CURRVAL ืืื ื-NEXTVAL ืืื ืงืฉืจ ืืกืืจ ืฉืืื ืืชืื ืืืฆืืจื.
ืื, ืืขืจื ืืืงืกืืืื ืืชืืื ืืืกืคืจ ืืฉืืจืืช, ืืืืืจ 5.
ืืื ืฉืืจืืช ืืืื ืืืืื ืืชืืฆืื ืืืคืขืืช ืืกืงืจืืคื ืืื?
create table t(i integer check (i < 5));
create procedure p(p_from integer, p_to integer) as
begin
for i in p_from .. p_to loop
insert into t values (i);
end loop;
end;
/
exec p(1, 3);
exec p(4, 6);
exec p(7, 9);
- 0
- 3
- 4
- 5
- 6
- 9
ืชืฉืืืืขื ืคื ืชืืขืื ืฉื ืืืจืงื (ืืฆืืื ื-11.2):
ืืคื ื ืืืฆืืข ืืฉืคื SQL ืืืฉืื, โโืืืจืงื ืืกืื ืช ื ืงืืืช ืฉืืืจื ืืจืืืืช (ืื ืืืื ื ืขืืืจื). ืืืืจ ืืื, ืื ืืืฆืืจื ื ืืฉืืช, ืืืจืงื ืืืืืจื ืืืชื ืืืืืืืืช ืืืืืืจื ืืช ืงืื ืืฉืืืื ืืจืืืื ืื ื- SQLCODE ื- SQLCA. ืืืืืื, ืื ืืฉืคื INSERT ืืืจื ืืฉืืืื ืขื ืืื ื ืืกืืื ืืืื ืืก ืขืจื ืืคืื ืืืื ืืงืก ืืืืืื, ืืืฆืืจื ืืืืืืช.
ืื ืืชืงืฉืจืืช ื-HP ืืืืงืื ื ืืฉืืช ืืืขืืืืช ืืืฆืืจื ืืืช. ืืคืืื, ืืฉืืื ืืจืืฉืื ื ืฉื HP ืืกืชืืืืช ืืืฆืืื, ืืืืจ ืฉืืืื ืกื ืฉืืืฉ ืจืฉืืืืช; ืืฉืืื ืืฉื ืืื ืฉื HP ืืกืชืืืืช ืืฉืืืื ืืืืืืจื ืืืืืจ ืืช ืืจืฉืืื ืืจืืืขืืช ืฉืืฆืืืื ืืืื ืืก; ืืฉืืื ืืฉืืืฉืืช ื ืืฉืื, ืืืฉ ืฉืืืฉื ืจืฉืืืืช ืืืืื.
ืืื ืฉืืจืืช ืืืื ืืืืื ืืชืืฆืื ืืืคืขืืช ืืกืงืจืืคื ืืื?
create table t(i integer, constraint i_ch check (i < 3));
begin
insert into t values (1);
insert into t values (null);
insert into t values (2);
insert into t values (null);
insert into t values (3);
insert into t values (null);
insert into t values (4);
insert into t values (null);
insert into t values (5);
exception
when others then
dbms_output.put_line('Oops!');
end;
/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
ืชืฉืืืืขื ืคื ืชืืขืื ืฉื ืืืจืงื (ืืฆืืื ื-11.2):
ืืืืืฅ ืืืืงื ืืืคืฉืจ ืื ืืฆืืื ืชื ืื ืฉืื ืฉืืจื ืืืืื ืืืืืช ืืขืืื ืื. ืืื ืืขืืื ืืืืืืฅ, ืื ืฉืืจื ืืืืื ืืืืืช ืืืคืื ืืช ืืชื ืื ื-TRUE ืื ืื ืืืืข (ืืฉื ืจืืง). ืืืฉืจ ืืืจืงื ืืขืจืืื ืชื ืื ืืืืืฅ ืืืืงื ืขืืืจ ืฉืืจื ืืกืืืืช, ืื ืฉืืืช ืืขืืืืืช ืืชื ืื ืืชืืืืกืื ืืขืจืื ืืขืืืืืช ืืืืชื ืฉืืจื.
ืืคืืื, ืืขืจื null ืืขืืืจ ืืช ืืืืืงื, ืืืืกืืื ืืื ืื ืืืืช ืชืชืืฆืข ืืืฆืืื ืขื ืื ืืกืืื ืืืื ืืก ืืช ืืขืจื 3. ืืืืจ ืืื, ืืกืืืช ืืืืคืื ืืฉืืืืืช ืชื ืงื ืืช ืืืจืื, ืื ืชืชืจืืฉ ืืืืื ืืืจื, ื ืืืฉืืจื ืืจืืข ืฉืืจืืช ืืืืื ืขื ืขืจืืื 1, null, 2 ืืฉืื null.
ืืืื ืืืืืช ืขืจืืื ืืชืคืกื ืืช ืืืชื ืืืืช ืืงืื ืืืืืง?
create table t (
a char(1 char),
b char(10 char),
c char(100 char),
i number(4),
j number(14),
k number(24),
x varchar2(1 char),
y varchar2(10 char),
z varchar2(100 char));
insert into t (a, b, i, j, x, y)
values ('Y', 'ะะฐัั', 10, 10, 'ะ', 'ะะฐัั');
- ื' ื-X
- B ื-Y
- C ื-K
- C ื-Z
- K ื-Z
- ืื ื ืื'ืื
- J ื-X
- ืืื ืืืคืืข ืืจืฉืืื
ืชืฉืืืืืืื ืงืืขืื ืืืชืืขืื (12.1.0.2) ืขื ืืืกืื ื ืชืื ืื ืืกืืืื ืฉืื ืื ืืืืจืงื.
ืกืื ื ืชืื ืื CHAR
ืกืื ืื ืชืื ืื CHAR ืืฆืืื ืืืจืืืช ืชืืืื ืืืืจื ืงืืืข ืืขืจืืช ืืชืืืื ืฉื ืืกื ืื ืชืื ืื. ืืชื ืืฆืืื ืืช ืขืจืืช ืืชืืืื ืฉื ืืกื ืื ืชืื ืื ืืขืช ืืฆืืจืช ืืกื ืื ืชืื ืื ืฉืื. ืืืจืงื ืืืืืื ืฉืืื ืืขืจืืื ืืืืืืกื ืื ืืขืืืืช CHAR ืืฉ ืืช ืืืืจื ืฉืฆืืื ืืคื ืืืื ืืกืื ืืืงื ืฉื ืืืืจื ืฉื ืืืจ. ืื ืืชื ืืืกืืฃ ืขืจื ืงืฆืจ ืืืืจื ืืขืืืื, ืื ืืืจืงื ืืจืืืื ืืช ืืขืจื ืืืืจื ืืขืืืื.
ืกืื ื ืชืื ืื VARCHAR2
ืกืื ืื ืชืื ืื VARCHAR2 ืืฆืืื ืืืจืืืช ืชืืืื ืืืืจื ืืฉืชื ื ืืขืจืืช ืืชืืืื ืฉื ืืกื ืื ืชืื ืื. ืืชื ืืฆืืื ืืช ืขืจืืช ืืชืืืื ืฉื ืืกื ืื ืชืื ืื ืืขืช ืืฆืืจืช ืืกื ืื ืชืื ืื ืฉืื. ืืืจืงื ืืืืกื ืช ืขืจื ืชื ืืขืืืืช VARCHAR2 ืืืืืง ืืคื ืฉืืชื ืืฆืืื ืืืชื, ืืื ืจืืคืื ืจืืง, ืืชื ืื ืฉืืขืจื ืืื ื ืืืจื ืืืืจื ืืขืืืื.
NUMBER ืกืื ื ืชืื ืื
ืกืื ืื ืชืื ืื NUMBER ืืืืกื ืืกืคืจืื ืงืืืขืื ืืคืก ืืื ืืืืื ืืฉืืืื ืขื ืขืจืืื ืืืืืืื ื-1.0 x 10-130 ืืขื ืื ืื ืืืื 1.0 x 10126. ืื ืชืฆืืื ืืืืื ืืจืืชืืื ืฉืืขืจื ืฉืื ืืฉ ืขืจื ืืืืื ืืืืื ืื ืฉืืื ื- 1.0 x 10126, ืืื ืืืจืงื ืืืืืจื ืฉืืืื. ืื ืขืจื NUMBER ืืืจืฉ ืืื 1 ื-22 ืืชืื. ืื ืืืงืืื ืืืช ืืืฉืืื, ื ืืชื ืืืฉื ืืช ืืืื ืืขืืืื ืืืชืื ืขืืืจ ืขืจื ื ืชืื ืื ืืกืคืจื ืืกืืื NUMBER(p), ืืืฉืจ p ืืื ืืืืืง ืฉื ืขืจื ื ืชืื, ืืืืฆืขืืช ืื ืืกืื ืืืื: ROUND((length(p)+s)/2))+1 ืืืฉืจ s ืฉืืื ืืืคืก ืื ืืืกืคืจ ืืืืื, ื-s ืฉืืื 1 ืื ืืืกืคืจ ืฉืืืื.
ืื ืืกืฃ, ืืืื ื ืืงื ืงืืข ืืืชืืขืื ืขื ืืืกืื ืขืจืื Null.
null ืืื ืืืขืืจ ืขืจื ืืขืืืื. ืืคืก ืืฆืืื ื ืชืื ืื ืืกืจืื, ืื ืืืืขืื ืื ืื ืืฉืืืื. ืืคืกืื ืืืืืกื ืื ืืืกื ืื ืชืื ืื ืื ืื ื ืืคืืื ืืื ืขืืืืืช ืขื ืขืจืื ื ืชืื ืื. ืืืงืจืื ืืื, ืื ืืืจืฉืื 1 ืืืื ืืื ืืืืกื ืืช ืืืจื ืืขืืืื (ืืคืก). ืืคืก ื ืืจืจ ืืฉืืจื ืืื ื ืืืจืฉ ืืืกืื ืืืืืื ืฉืืืชืจืช ืฉืืจื ืืืฉื ืืกืื ืช ืฉืืขืืืืืช ืื ืืชืจืืช ืืฉืืจื ืืงืืืืช ืื ืืคืกืืืช. ืืืืืื, ืื ืฉืืืฉ ืืขืืืืืช ืืืืจืื ืืช ืืืืื ืื null, ืื ืื ืืืืืกื ืื ื ืชืื ืื ืขืืืจ ืืขืืืืืช ืืืื.
ืขื ืกืื ืื ืชืื ืื ืืืื, ืื ื ืืื ืื ืืืืืื. ืื ื ืื ืืืื ืฉืืกื ืื ืชืื ืื ืืฉืชืืฉ ืืงืืืื AL32UTF8. ืืงืืืื ืื, ืืืชืืืช ืจืืกืืืช ืืชืคืกื 2 ืืชืื.
1) A ื-X, ืืขืจื ืฉื ืฉืื a 'Y' ืืืงื 1 ืืืื, ืืขืจื ืฉื ืฉืื x 'D' ืืืงื 2 ืืชืื
2) B ื-Y, 'Vasya' ื-b ืืขืจื ืืืื ืืจืืคื ืืจืืืืื ืฉื ืขื 10 ืชืืืื ืืืืงื 14 ืืชืื, 'Vasya' ื-d ืืืงื 8 ืืชืื.
3) C ื-K ืืฉื ื ืืฉืืืช ืืฉ ืืช ืืขืจื NULL, ืืืจืืื ืืฉ ืฉืืืช ืืฉืืขืืชืืื, ืื ืื ืชืืคืกืื 1 ืืืื.
4) C ื-Z. ืืฉื ื ืืฉืืืช ืืฉ ืืช ืืขืจื NULL, ืืื ืฉืื Z ืืื ืืืืจืื ืืืืื, ืื ืฉืืื ืื ืชืืคืก ืืงืื (0 ืืชืื). ืฉืื C ืชืืคืก 1 ืืืื.
5) ืง ืื' ืืืืื ืืืงืจื ืืงืืื. ืืขืจื ืืฉืื K ืชืืคืก 1 ืืืื, ื-Z โ 0.
6) I ื-J. ืืคื ืืชืืขืื, ืฉื ื ืืขืจืืื ืืืงืื 2 ืืชืื. ืื ื ืืืฉืืื ืืช ืืืืจื ืืืืฆืขืืช ืื ืืกืื ืฉื ืืงืื ืืืชืืขืื: round( (1 + 0)/2) +1 = 1 + 1 = 2.
7) J ื-X. ืืขืจื ืืฉืื J ืืืงื 2 ืืชืื, ืืขืจื ืืฉืื X ืืืงื 2 ืืชืื.
ืืกื ืืื, ืืืคืฉืจืืืืช ืื ืืื ืืช ืื: C ื-K, I ื-J, J ื-X.
ืื ืืืื ืืขืจื ืืืจื ืืืฉืืืืืช ืฉื ืืื T_I?
create table t (i integer);
insert into t select rownum from dual connect by level <= 10000;
create index t_i on t(i);
- ืืขืจื ืขืฉืจืืช
- ืืขืจื ืืืืช
- ืืขืจื ืืืคืื
- ืืขืจื ืขืฉืจืืช ืืืคืื
ืชืฉืืืืขื ืคื ืชืืขืื ืฉื ืืืจืงื (ืืฆืืื ื-12.1):
ืขืืืจ ืืื ืืงืก ืขืฅ B, ืืืจื ืืงืืฅ ืืืื ืืงืก ืืืื ืืช ืืงืืืืฅ ืืคืืื ืฉื ืฉืืจืืช ืืืืก ืืขืจื ืืื ืืงืก.
ืืืจื ืืงืืฅ ืืืื ืืงืก ืขืืืจ ืืืืืื ืืืืืื ืื ืกืจืืงืช ืืื ืืงืก ืื ืกืจืืงืช ืืืื ืืืื ืืขืืื ืืืชืจ ืขืืืจ ืฉืืืืชืืช ืืกืืืืืช). ืืืจื ืืงืืฅ ื ืืื ืืฆืืืข ืขื ืกืจืืงืช ืืื ืืงืก ืืขืืื.
ืืืจื ืืงืืฅ ืฉืงืจืื ืืืกืคืจ ืืืืืงืื ืืืืื ืืฆืืื ืฉืืฉืืจืืช ืืกืืืจืืช ืคืืืืช ืืืืืงืื ืืืืื ืขื ืืื ืืคืชื ืืืื ืืงืก. ืื ืืกื ืื ืชืื ืื ืืืฆืข ืกืจืืงืช ืืืื ืืืื, ืืกื ืื ืชืื ืื ื ืืื ืืืืืจ ืืช ืืฉืืจืืช ืืฉืื ืืืืืกื ืืช ืืืืกืง ืืืืื ืื ืืคื ืืคืชื ืืืื ืืงืก. ืืืจื ืืงืืฅ ืฉืงืจืื ืืืกืคืจ ืืฉืืจืืช ืืฆืืื ืฉืืฉืืจืืช ืืคืืืจืืช ืืืืคื ืืงืจืื ืขื ืคื ื ืืืืงืื ืฉื ืืกื ืื ืชืื ืื ืืืืก ืืืคืชื ืืืื ืืงืก. ืื ืืกื ืื ืชืื ืื ืืืฆืข ืกืจืืงืช ืืืื ืืืื, ืืกื ืื ืชืื ืื ืื ืืืืืจ ืฉืืจืืช ืืฉืื ืกืืจ ืืืืื ืืคื ืืคืชื ืืื ืืงืก ืื.
ืืืงืจื ืื, ืื ืชืื ืื ืืืืื ืื ืืืืคื ืืืืืืื, ืื ืฉืืืจื ืืืฉืืืืืช ืืืื ืฉืืื ืื ืงืจืื ืืืกืคืจ ืืืืืงืื ืืชืคืืกืื ืืืืื. ืขืืืจ ืืืื ืืืืง ืกืื ืืจืื ืฉื 8 ืงืืืืืืื, ืืชื ืืืื ืืฆืคืืช ืื ืืืืฃ ืขืจืื ืืกืคืจ ืฆืจืื ืืฉืชืืื ืืืืืง ืืื, ืื ืฉืืกืคืจ ืืืืืงืื, ืืืชืืฆืื ืืื, ืืืจื ืืืฉืืืืืช ืืืื ืืขืจื ืขืฉืจืืช.
ืืืืื ืขืจืืื ืฉื N ืืกืงืจืืคื ืืื ืืืืฆืข ืืืฆืืื ืืืกื ื ืชืื ืื ืจืืื ืขื ืืืืจืืช ืกืื ืืจืืืืช?
create table t (
a varchar2(N char),
b varchar2(N char),
c varchar2(N char),
d varchar2(N char));
create index t_i on t (a, b, c, d);
- 100
- 200
- 400
- 800
- 1600
- 3200
- 6400
ืชืฉืืืืขื ืคื ืชืืขืื ืฉื ืืืจืงื (ืืฆืืื ื-11.2):
ืืืืืืช ืืกื ื ืชืื ืื ืืืื
ืคืจืื
ืกืื ืืืืื
ืขืจื ืืืืื
ืืื ืืงืกืื
ืืืืื ืืืืื ืฉื ืืขืืืื ืฉื ืืกืคื ืืืื ืืงืก
75% ืืืืื ืืืืง ืืกื ืื ืชืื ืื ืคืืืช ืชืงืืจื ืืกืืืืช
ืืคืืื, ืืืืื ืืืืื ืฉื ืืขืืืืืช ืฉื ืืกืคื ืืืื ืืงืก ืื ืืขืื ืขื 6Kb. ืื ืฉืงืืจื ืืืืจ ืืื ืชืืื ืืงืืืื ืืืกืืก ืฉื ืืืจ. ืขืืืจ ืงืืืื AL32UTF8, ืชื ืืื ืืืื ืืชืคืืก ืืงืกืืืื 4 ืืชืื, ืื ืฉืืืงืจื ืืืจืืข ืืืืชืจ, ื-6 ืชืืืื ืืชืืืื ื-1500 ืงืืืืืืื. ืืื, ืืืจืงื ืชืืื ืืฆืืจืช ืืื ืืงืก ื-N = 400 (ืืืฉืจ ืืืจื ืืืคืชื ืืืจืืข ืืืืชืจ ืืื 1600 ืชืืืื * 4 ืืชืื + ืืืจื ืฉืืจื), ืืขืื ื-N = 200 (ืื ืคืืืช) ืืฆืืจืช ืืืื ืืงืก ืชืขืืื ืืื ืืขืืืช.
ืืืืคืจืืืจ INSERT ืขื ืืจืื APPEND ื ืืขื ืืืขืื ื ืชืื ืื ืืืฆื ืืฉืืจ. ืื ืงืืจื ืื ืื ืืืื ืขื ืืฉืืืื ืฉืขืืื ืชืืื ืืืืง?
- ืื ืชืื ืื ืืืืขื ื ืืืฆื ืืฉืืจ, ืืืจืืืจ ืืคืขื ืืืฆืืคื
- ืื ืชืื ืื ืืืืขื ื ืืืฆื ืืฉืืจ, ืื ืืืจืืืจ ืื ืืืืฆืข
- ืื ืชืื ืื ืืืืขื ื ืืืฆื ืงืื ืื ืฆืืื ืื, ืืืจืืืจ ืืคืขื ืืื ืฉืฆืจืื
- ืื ืชืื ืื ืืืืขื ื ืืืฆื ืจืืื, ืื ืืืจืืืจ ืื ืืืืฆืข
- ืื ืชืื ืื ืื ืืืืขื ื, ืชืืจืฉื ืฉืืืื
ืชืฉืืืืืขืืงืจืื, ืื ืืืชืจ ืฉืืื ืฉื ืืืืืื. ืืื ืืืฆืื ืืช ืืชืฉืืื ืื ืืื ื, ืืืืชื ืืฆืืข ืืช ืืืื ืืืืืืื ืืื:
- ืืื ืกื ืืืฆื ืืฉืืจ ืืชืืฆืขืช ืขื ืืื ืืฆืืจื ืืฉืืจื ืฉื ืืืืง ื ืชืื ืื, ืขืงืืคืช ืื ืืข ื-SQL, ืืืืืื ืืืืจืืช ืืืืื. ืืคืืื, ืืืืืช ืืืฆืืข ืืืจืืืจ ืงืฉื ืืืื, ืื ืื ืืืชื ืืคืฉืจืืช, ืืืื ืืื ืืขื, ืฉืื ืื ืขืืืื ืืื ืืืืคื ืงืืฆืื ื ืืช ืืืืืจื.
- ืื ืืืฆืืข ืืืจืืืจ ืืืืื ืืื ืฉืื ืื ืชืื ืื ืืืืื ืืืื, ืืฆื ืืกื ืื ืชืื ืื ืืืืืืชื (ืืืืืืช ืืืจืืช) ืืืื ืชืืื ืืืฆื ืื ืืืื ืกื ื ืชืื ืื ืืื. ืื ืืืืื ืืืจืืก ืืช ืฉืืืืช ืื ืชืื ืื ืืื ื ืืชื ืืืืฉื ืืืชื ืืคืชืจืื ืืืืฆืืจ.
- ืืืกืจ ืืืืืืช ืืืฆืข ืืช ืืคืขืืื ืืืืืงืฉืช ืืืืคื ืืืจื ืืื ืืฉืืืื. ืืื ืืื ืฆืจืื ืืืืืจ ืฉ-APPEND ืืื ืจืื, ืืืืืืืื ืืืืื ืฉื ืืจืืืื ืืื ืฉืื ื ืืงืืื ืืืฉืืื ืื ืืคืฉืจ, ืืื ืื ืื, ืืืืคืจืืืจ ืืืืฆืข ืืืื ืืงืืช ืืช ืืจืื ืืืฉืืื.
ืื ืืชืฉืืื ืืฆืคืืื ืืื ืื ืชืื ืื ืืืืขื ื ืืืฆื ืจืืื (SQL), ืืืง ืืืคืขื.
ืขื ืคื ืชืืขืื ืฉื ืืืจืงื (ืืฆืืื ื-8.04):
ืืคืจืืช ืฉื ืืืืืืืช ืืืจืื ืืืืฆืืข ืืืฆืืจื ืืืืคื ืกืืจืชื, ืชืื ืฉืืืืฉ ืื ืชืื ืืืืกืคื ืืืงืืื, ืืื ืืืืจืืช ืื ืืืืขืืช ืฉืืืื. ืืืฆื ืื ืืืื ืืื ืืืืืื ืขื ืืืฉื ืืืฉืคืืื ืืืืชื ืืืื ืืืชืจ ืืคืขื ืืืช ืืืจื ืืงืฆืื, ืื ืฉืขืืื ืืืจืื ืืืืืขืืช ืฉืืืื.
ืืืืืื, ืื ืงืืืืื ืืจืืืจืื ืื ืฉืืืืช ืืคื ืืืช ืขื ืืืืื, ืืจืื APPEND ืืชืขืื ืืืฉืจ ืชื ืกื ืืืฉืชืืฉ ื-INSERT ืืขื ืขืืืก ืืฉืืจ (ืืืจื ืื ืืงืืื), ืืื ืื ืืจืื PARALLEL ืื ืกืขืืฃ, ืื ืืฉ.
ืื ืืงืจื ืืฉืืกืงืจืืคื ืืื ืืืืฆืข?
create table t(i integer not null primary key, j integer references t);
create trigger t_a_i after insert on t for each row
declare
pragma autonomous_transaction;
begin
insert into t values (:new.i + 1, :new.i);
commit;
end;
/
insert into t values (1, null);
- ืืฉืืื ืืืฆืืืช
- ืืฉื ืขืงื ืฉืืืืช ืชืืืืจ
- ืฉืืืื: ืืขืกืงื ืืืืืื ืืืืช ืืื ื ืืืงืืช
- ืฉืืืื ืืงืฉืืจื ืืืจืืืช ืงืื ืื ืืฉืืื ืืืงืกืืืืืช
- ืฉืืืืช ืืคืจืช ืืคืชื ืืจ
- ืฉืืืื ืืงืฉืืจื ืืื ืขืืืื
ืชืฉืืืืืืืื ืืืืจืืืจ ื ืืฆืจืื ืืฆืืจื ืื ื ืืื ื ืืืคืขืืื ืืื ืื ืืืืจื ืืืืืื ืืืขืืืช. ืืืชืจืืช ืื ืขืกืงืืืช ืืืืื ืืืืืช ืืืจืืืจ, ืืืจืช ืจืืฉืื ืื ืืชืืคืฉืจ, ืืืฉื.
ืืืืจ ืืื ืกืช ืืฉืืจื ืืจืืฉืื ื, ืืจื ืืจืืืจ ืืืฆืื ืืืจืื ืืืื ืกืช ืืฉืืจื ืืฉื ืืื, ืืืจืื ืืืคืขืืช ืืืืง ืฉืื, ืืื ืกืช ืฉืืจื ืฉืืืฉืืช, ืืื ืืืื ืขื ืฉืืืฆืืจื ื ืืฉืื ืขืงื ืืจืืื ืืืงืื ืื ืืืงืกืืืื ืฉื ืฉืืืืช. ืขื ืืืช, ื ืงืืื ืขืืื ื ื ืืกืคืช ื ืื ืกืช ืืชืืื ื. ืืืื ืฉืืืจืืืจ ืืืืฆืข, ื-commit ืขืืืื ืื ืืืฉืื ืขืืืจ ืืจืฉืืื ืืจืืฉืื ื ืฉืืืื ืกื. ืืื, ืืจืืืจ ืืคืืขื ืืืจื ืืงืฆืื ืืืืื ืืืืช ืื ืกื ืืืื ืืก ืืืืื ืฉืืจื ืืืคื ื ืืคืชื ืืจ ืืจืฉืืื ืฉืืจื ืืืฆืขื. ืื ืืืจื ืืืืชื ื (ืืืจื ืืงืฆืื ืืืืืื ืืืืช ืืืชืื ื ืืืชืืืืืืช ืฉื ืืขืกืงื ืืจืืฉืืช ืืื ืืจืืืช ืื ืืื ืืืืื ืืืื ืืก ื ืชืื ืื) ืืืืงืืื ืืขืกืงื ืืจืืฉืืช ืืืชืื ื ืฉืืขืกืงื ืืืืืื ืืืืช ืชืืฉืื ืืขืืื ืืืืจ ืืืจืืืจ. ืืชืจืืฉืช ืืืื ืกืชืื ืืืชืืฆืื ืืื ืืขืกืงื ืืืืืื ืืืืช ืืืืืืช ืืกืืืืช ืืงืฉืืจืืช ืืื ืขืืืื.
ืจืง ืืฉืชืืฉืื ืจืฉืืืื ืืืืืื ืืืฉืชืชืฃ ืืกืงืจ.
ืืื ืงืฉื?
-
ืืื ืฉืชื ืืฆืืขืืช, ืืื ืืืืืชื ืืื ื ืืื.
-
ืื ืืืฉ, ืืขืืชื ืืืื ืฉืืืืช.
-
ืคืชืจืชื ืืฆื ื ืืื.
-
ื ืืืฉืชื ืืช ืืชืฉืืื ืคืขืืืื!
-
ืื ื ืืืชืื ืืชืืืืืช
14 ืืฉืชืืฉืื ืืฆืืืขื. 10 ืืฉืชืืฉืื ื ืื ืขื.
ืืงืืจ: www.habr.com