Highload++ เดธเตˆเดฌเต€เดฐเดฟเดฏ 2019-เดจเตเดฑเต† เดชเดพเดค เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจเต - Oracle-เตฝ 8 เดœเต‹เดฒเดฟเด•เตพ

เดนเดฒเต‹!

เดœเต‚เตบ 24-25 เดคเต€เดฏเดคเดฟเด•เดณเดฟเตฝ, เดนเตˆเดฒเต‹เดกเต++ เดธเตˆเดฌเต€เดฐเดฟเดฏ 2019 เด•เต‹เตบเดซเดฑเตปเดธเต เดจเต‹เดตเต‹เดธเดฟเดฌเดฟเตผเดธเตเด•เดฟเตฝ เดจเดŸเดจเตเดจเต. เดžเด™เตเด™เดณเตเดŸเต† เด†เดณเตเด•เดณเตเด‚ เด…เดตเดฟเดŸเต† เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต โ€œเด’เดฑเดพเด•เตเด•เดฟเตพ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเตผ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเด•เดณเตเด‚ (CDB/PDB) เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เด…เดตเดฏเตเดŸเต† เดชเตเดฐเดพเดฏเต‹เด—เดฟเด• เด‰เดชเดฏเต‹เด—เดตเตเด‚โ€, เดžเด™เตเด™เตพ เด•เตเดฑเดšเตเดšเต เด•เดดเดฟเดžเตเดžเต เด’เดฐเต เดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเต เดชเดคเดฟเดชเตเดชเต เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเด‚. เด…เดคเต เดฐเดธเด•เดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดจเดจเตเดฆเดฟ เด’เดฒเต†เด—เตเดฌเตเดจเดฟเตป เดธเด‚เด˜เดŸเดจเดฏเตเด•เตเด•เตเด‚ เด…เดคเตเดชเต‹เดฒเต† เดตเดจเตเดจ เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚.

Highload++ เดธเตˆเดฌเต€เดฐเดฟเดฏ 2019-เดจเตเดฑเต† เดชเดพเดค เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจเต - Oracle-เตฝ 8 เดœเต‹เดฒเดฟเด•เตพ
เดˆ เดชเต‹เดธเตเดฑเตเดฑเดฟเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เดฌเต‚เดคเตเดคเดฟเตฝ เด‰เดฃเตเดŸเดพเดฏ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดชเด™เตเด•เดฟเดŸเดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเตเดตเดดเดฟ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด’เดฑเดพเด•เตเด•เดฟเตพ เดชเดฐเดฟเดœเตเดžเดพเดจเด‚ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดจเดพเด•เตเด‚. เด•เดŸเตเดŸเดฟเดจเต เดคเดพเดดเต† 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 เดชเตเดฐเดธเตเดคเดพเดตเดจเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ, Oracle เด’เดฐเต เดตเดฐเดฟเดฏเดฟเตฝ เด’เดฐเดฟเด•เตเด•เตฝ เดฎเดพเดคเตเดฐเด‚ เด•เตเดฐเดฎเด‚ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚. เด’เดฐเต เดธเตโ€Œเดฑเตเดฑเต‡เดฑเตเดฑเตโ€Œเดฎเต†เดจเตเดฑเดฟเตฝ NEXTVAL เดŽเดจเตเดจ เดธเต€เด•เตเดตเตปเดธเดฟเดจเดพเดฏเดฟ เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดฑเดซเดฑเตปเดธเต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, Oracle เด’เดฐเต เดคเดตเดฃ เด•เตเดฐเดฎเด‚ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ NEXTVAL-เดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดธเด‚เดญเดตเด™เตเด™เตพเด•เตเด•เตเด‚ เด’เดฐเต‡ เดฎเต‚เดฒเตเดฏเด‚ เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด’เดฐเต เดชเตเดฐเดธเตเดคเดพเดตเดจเดฏเดฟเตฝ CURRVAL, NEXTVAL เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฑเดซเดฑเตปเดธเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, Oracle เดธเต€เด•เตเดตเตปเดธเต เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ 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 เดชเตเดฐเดธเตเดคเดพเดตเดจ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, Oracle เด’เดฐเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดธเต‡เดตเต เดชเต‹เดฏเดฟเดจเตเดฑเต เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต (เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฒเดญเตเดฏเดฎเดฒเตเดฒ). เดคเตเดŸเตผเดจเตเดจเต, เดชเตเดฐเดธเตเดคเดพเดตเดจ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, Oracle เด…เดคเต เดฏเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เดฑเต‹เตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดฌเดพเดงเด•เดฎเดพเดฏ เดชเดฟเดถเด•เต เด•เต‹เดกเต SQLCA-เดฏเดฟเดฒเต† SQLCODE-เดฒเต‡เด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เด…เดฆเตเดตเดฟเดคเต€เดฏ เดธเต‚เดšเดฟเด•เดฏเดฟเตฝ เด’เดฐเต เดกเตเดฏเต‚เดชเตเดฒเดฟเด•เตเด•เต‡เดฑเตเดฑเต เดฎเต‚เดฒเตเดฏเด‚ เดคเดฟเดฐเตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เด’เดฐเต INSERT เดชเตเดฐเดธเตเดคเดพเดตเดจ เด’เดฐเต เดชเดฟเดถเด•เต เด‰เดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตเดฎเต†เดจเตเดฑเต เดฑเต‹เตพ เดฌเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด‚.

เด•เตเดฒเดฏเดจเตเดฑเดฟเตฝเดจเดฟเดจเตเดจเต เดŽเดšเตเดšเตเดชเดฟ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เด’เดฐเตŠเดฑเตเดฑ เดชเตเดฐเดธเตเดคเดพเดตเดจเดฏเดพเดฏเดฟ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด…เด™เตเด™เดจเต†, เดฎเต‚เดจเตเดจเต เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพ เดšเต‡เตผเดคเตเดคเตเด•เตŠเดฃเตเดŸเต เด†เดฆเตเดฏเดคเตเดคเต† 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 เตฝ เดจเดฟเดจเตเดจเต เด‰เดฆเตเดงเดฐเดฟเดšเตเดšเดคเต):

เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต† เด“เดฐเต‹ เดตเดฐเดฟเดฏเตเด‚ เดชเดพเดฒเดฟเด•เตเด•เต‡เดฃเตเดŸ เด’เดฐเต เดตเตเดฏเดตเดธเตเดฅ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเตป เด’เดฐเต เดšเต†เด•เตเด•เต เด•เตบเดธเตเดŸเตเดฐเตˆเดจเตเดฑเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดคเตเดคเต† เดคเตƒเดชเตเดคเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป, เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต† เด“เดฐเต‹ เดตเดฐเดฟเดฏเตเด‚ เดตเตเดฏเดตเดธเตเดฅ เดถเดฐเดฟเดฏเต‹ เด…เดœเตเดžเดพเดคเดฎเต‹ เด†เด•เตเด•เดฃเด‚ (เดถเต‚เดจเตเดฏเดฎเดพเดฏเดคเดฟเดจเดพเตฝ). เด’เดฑเดพเด•เตเด•เดฟเตพ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดตเดฐเดฟเดฏเตเดŸเต† เดšเต†เด•เตเด•เต เด•เตบเดธเตเดŸเตเดฐเต†เดฏเดฟเดจเตเดฑเต เด…เดตเดธเตเดฅ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดฎเตเดชเต‹เตพ, เดตเตเดฏเดตเดธเตเดฅเดฏเดฟเดฒเตเดณเตเดณ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เต‹เดณเด‚ เดชเต‡เดฐเตเด•เตพ เด† เดตเดฐเดฟเดฏเดฟเดฒเต† เด•เต‹เดณเด‚ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเต† เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เด™เตเด™เดจเต†, เดฎเต‚เดฒเตเดฏเด‚ เดจเตพ เดšเต†เด•เตเด•เต เดชเดพเดธเดพเด•เตเด•เตเด‚, เดฎเต‚เดฒเตเดฏเด‚ 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, 'ะ”', 'ะ’ะฐัั');

  • เดŽ, เดŽเด•เตเดธเต
  • เดฌเดฟ, เดตเตˆ
  • เดธเดฟเดฏเตเด‚ เด•เต†
  • เดธเดฟ, เด‡เดธเดกเต
  • เด•เต†, เด‡เดธเดกเต
  • เดžเดพเดจเตเด‚ เดœเต†
  • เดœเต†, เดŽเด•เตเดธเต
  • เดŽเดฒเตเดฒเดพเด‚ เดชเดŸเตเดŸเดฟเด•เดชเตเดชเต†เดŸเตเดคเตเดคเดฟ

เดฎเดฑเตเดชเดŸเดฟเด’เดฑเดพเด•เตเด•เดฟเดณเดฟเตฝ เดตเดฟเดตเดฟเดง เดคเดฐเด‚ เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ (12.1.0.2) เด‰เดฆเตเดงเดฐเดฃเดฟเด•เตพ เด‡เดตเดฟเดŸเต†เดฏเตเดฃเตเดŸเต.

CHAR เดกเดพเดฑเตเดฑ เดคเดฐเด‚
CHAR เดกเดพเดฑเตเดฑ เดคเดฐเด‚ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดชเตเดฐเดคเต€เด• เดธเต†เดฑเตเดฑเดฟเตฝ เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดฆเตˆเตผเด˜เตเดฏเดฎเตเดณเตเดณ เดชเตเดฐเดคเต€เด• เดธเตเดŸเตเดฐเดฟเด‚เด—เต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดชเตเดฐเดคเต€เด• เดธเต†เดฑเตเดฑเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต CHAR เดจเดฟเดฐเดฏเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพเด•เตเด•เตเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เดฆเตˆเตผเด˜เตเดฏ เดธเต†เดฎเดพเดจเตเดฑเดฟเด•เตโ€Œเดธเดฟเตฝ เดตเดฒเตเดชเตเดชเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏ เดฆเตˆเตผเด˜เตเดฏเดฎเตเดฃเตเดŸเต†เดจเตเดจเต เด’เดฑเดพเด•เตเด•เดฟเตพ เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเต. เดจเดฟเดฐเดฏเตเดŸเต† เดจเต€เดณเดคเตเดคเต‡เด•เตเด•เดพเตพ เด•เตเดฑเดตเตเดณเตเดณ เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เดจเดฟเด™เตเด™เตพ เดคเดฟเดฐเตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, Oracle เดฌเตเดฒเดพเด™เตเด•เต เดชเดพเดกเต เดฎเต‚เดฒเตเดฏเดคเตเดคเต† เดจเดฟเดฐเดฏเตเดŸเต† เดจเต€เดณเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต.

VARCHAR2 เดกเดพเดฑเตเดฑ เดคเดฐเด‚
VARCHAR2 เดกเดพเดฑเตเดฑ เดคเดฐเด‚ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดชเตเดฐเดคเต€เด• เดธเต†เดฑเตเดฑเดฟเตฝ เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ-เดฒเต†เด™เตเดคเต เด•เตเดฏเดพเดฐเด•เตเดŸเตผ เดธเตเดŸเตเดฐเดฟเด‚เด—เต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดชเตเดฐเดคเต€เด• เดธเต†เดฑเตเดฑเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต. เดจเดฟเดฐเดฏเตเดŸเต† เดฆเตˆเตผเด˜เตเดฏเด‚ เด•เดตเดฟเดฏเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเต‚เดฒเตเดฏเด‚ เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดชเดพเดกเดฟเด‚เด—เตเด‚ เด•เต‚เดŸเดพเดคเต† เดจเดฟเด™เตเด™เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เดชเต‹เดฒเต† เดคเดจเตเดจเต† Oracle เด’เดฐเต VARCHAR2 เด•เต‹เดณเดคเตเดคเดฟเตฝ เด’เดฐเต เดชเตเดฐเดคเต€เด• เดฎเต‚เดฒเตเดฏเด‚ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

NUMBER เดกเดพเดฑเตเดฑ เดคเดฐเด‚
1.0 x 10-130 เดฎเตเดคเตฝ เดŽเดจเตเดจเดพเตฝ 1.0 x 10126 เดตเดฐเต†เดฏเตเดณเตเดณ เดธเดฎเตเดชเต‚เตผเดฃเตเดฃ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดณเตเดณ เดชเต‚เดœเตเดฏเดตเตเด‚ เดชเต‹เดธเดฟเดฑเตเดฑเต€เดตเต, เดจเต†เด—เดฑเตเดฑเต€เดตเต เดธเตเดฅเดฟเดฐ เดธเด‚เด–เตเดฏเด•เดณเตเด‚ NUMBER เดกเดพเดฑเตเดฑเดพ เดคเดฐเด‚ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพ เด’เดฐเต เด—เดฃเดฟเดค เดชเดฆเดชเตเดฐเดฏเต‹เด—เด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเต เด•เต‚เดŸเตเดคเดฒเต‹ เดคเตเดฒเตเดฏเดฎเต‹ เด†เดฏ เด’เดฐเต เด•เต‡เดตเดฒ เดฎเต‚เดฒเตเดฏเดฎเตเดฃเตเดŸเต 1.0 x 10126, เดคเตเดŸเตผเดจเตเดจเต Oracle เด’เดฐเต เดชเดฟเดถเด•เต เดจเตฝเด•เตเดจเตเดจเต. เด“เดฐเต‹ NUMBER เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเตเด‚ 1 เดฎเตเดคเตฝ 22 เดตเดฐเต† เดฌเตˆเดฑเตเดฑเตเด•เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด‡เดคเต เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด•เตƒเดคเตเดฏเดค p เดŽเดจเตเดจเดคเต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดธเด‚เด–เตเดฏเดพ เดกเดพเดฑเตเดฑ เดฎเต‚เดฒเตเดฏเดฎเดพเดฏ NUMBER(p) เดฏเตเดŸเต† เดฌเตˆเดฑเตเดฑเตเด•เดณเดฟเดฒเตเดณเตเดณ เดจเดฟเดฐเดฏเตเดŸเต† เดตเดฒเตเดชเตเดชเด‚ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดซเต‹เตผเดฎเตเดฒ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เดฃเด•เตเด•เดพเด•เตเด•เดพเด‚: ROUND((เดจเต€เดณเด‚(p)+s)/2))+1 เดธเด‚เด–เตเดฏ เดชเต‹เดธเดฟเดฑเตเดฑเต€เดตเต เด†เดฃเต†เด™เตเด•เดฟเตฝ s เดชเต‚เดœเตเดฏเดคเตเดคเดฟเดจเตเด‚ เดธเด‚เด–เตเดฏ เดจเต†เด—เดฑเตเดฑเต€เดตเต เด†เดฃเต†เด™เตเด•เดฟเตฝ 1 เดจเตเด‚ เดคเตเดฒเตเดฏเดฎเดพเดฃเต.

เด•เต‚เดŸเดพเดคเต†, เดจเตพ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เด‰เดฆเตเดงเดฐเดฃเดฟ เดŽเดŸเตเด•เตเด•เดพเด‚.

เด’เดฐเต เดจเดฟเดฐเดฏเดฟเตฝ เด’เดฐเต เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด…เดญเดพเดตเดฎเดพเดฃเต เดจเตพ. เดจเตพเดธเต เดจเดทเตโ€ŒเดŸเดฎเดพเดฏเดคเต‹ เด…เดฑเดฟเดฏเดพเดคเตเดคเดคเต‹ เดฌเดพเดงเด•เดฎเดฒเตเดฒเดพเดคเตเดคเดคเต‹ เด†เดฏ เดกเดพเดฑเตเดฑเดฏเต† เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดกเดพเดฑเตเดฑ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดณเตเดณ เดจเดฟเดฐเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดตเต€เดฃเดพเตฝ เดจเตพเดธเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเตฝ เดธเด‚เดญเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. เดˆ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ, เดจเดฟเดฐเดฏเตเดŸเต† เดฆเตˆเตผเด˜เตเดฏเด‚ (เดชเต‚เดœเตเดฏเด‚) เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด…เดตเตผเด•เตเด•เต 1 เดฌเตˆเดฑเตเดฑเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดฎเตเดฎเตเดชเดคเตเดคเต† เดตเดฐเดฟเดฏเดฟเดฒเต† เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดจเดฟเดฐเด•เตพ เด…เดธเดพเดงเตเดตเดพเดฃเต†เดจเตเดจเต เด’เดฐเต เดชเตเดคเดฟเดฏ เดตเดฐเดฟ เดคเดฒเด•เตเด•เต†เดŸเตเดŸเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ เด’เดฐเต เดตเดฐเดฟเดฏเดฟเดฒเต† เดŸเตเดฐเต†เดฏเดฟเดฒเดฟเด‚เด—เต nullเด•เตพเด•เตเด•เต เดธเด‚เดญเดฐเดฃเด‚ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เดชเดŸเตเดŸเดฟเด•เดฏเตเดŸเต† เด…เดตเดธเดพเดจเดคเตเดคเต† เดฎเต‚เดจเตเดจเต เดจเดฟเดฐเด•เตพ เด…เดธเดพเดงเตเดตเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดˆ เด•เต‹เดณเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เด’เดฐเต เดกเดพเดฑเตเดฑเดฏเตเด‚ เดธเด‚เดญเดฐเดฟเด•เตเด•เดฟเดฒเตเดฒ.

เดˆ เดกเดพเดฑเตเดฑเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ, เดžเด™เตเด™เตพ เดจเตเดฏเดพเดฏเดตเดพเดฆเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเต. เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต AL32UTF8 เดŽเตปเด•เต‹เดกเดฟเด‚เด—เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฏเดฟ เดžเด™เตเด™เตพ เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดŽเตปเด•เต‹เดกเดฟเด‚เด—เดฟเตฝ, เดฑเดทเตเดฏเตป เด…เด•เตเดทเดฐเด™เตเด™เตพ 2 เดฌเตˆเดฑเตเดฑเตเด•เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเด‚.

1) A, X เดŽเดจเตเดจเดฟเดต, เด’เดฐเต 'Y' เดซเต€เตฝเดกเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ 1 เดฌเตˆเดฑเตเดฑเต เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต, เดซเต€เตฝเดกเต x 'D' เดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ 2 เดฌเตˆเดฑเตเดฑเตเด•เตพ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต
2) เดฌเดฟเดฏเดฟเดฒเต† เดฌเดฟ, เดตเตˆ, 'เดตเดพเดธเตเดฏ' เดŽเดจเตเดจเดฟเดต 10 เดชเตเดฐเดคเต€เด•เด™เตเด™เตพ เดตเดฐเต†เดฏเตเดณเตเดณ เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เดณเดพเตฝ เดชเดพเดกเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚, 14 เดฌเตˆเดฑเตเดฑเตเด•เตพ เดŽเดŸเตเด•เตเด•เตเด‚, เดกเดฟเดฏเดฟเดฒเต† 'เดตเดพเดธเตเดฏ' 8 เดฌเตˆเดฑเตเดฑเตเด•เตพ เดŽเดŸเตเด•เตเด•เตเด‚.
3) C, K. เดฐเดฃเตเดŸเต เดซเต€เตฝเดกเตเด•เตพเด•เตเด•เตเด‚ NULL เดฎเต‚เดฒเตเดฏเดฎเตเดฃเตเดŸเต, เด…เดตเดฏเตเด•เตเด•เต เดถเต‡เดทเด‚ เด•เดพเดฐเตเดฏเดฎเดพเดฏ เดซเต€เตฝเดกเตเด•เตพ เด‰เดฃเตเดŸเต, เด…เดคเดฟเดจเดพเตฝ เด…เดต 1 เดฌเตˆเดฑเตเดฑเต เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเต.
4) C, Z. เดฐเดฃเตเดŸเต เดซเต€เตฝเดกเตเด•เตพเด•เตเด•เตเด‚ NULL เดฎเต‚เดฒเตเดฏเดฎเตเดฃเตเดŸเต, เดŽเดจเตเดจเดพเตฝ Z เดซเต€เตฝเดกเต เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เด…เดตเดธเดพเดจเดคเตเดคเต‡เดคเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เด‡เดคเต เดธเตเดฅเดฒเด‚ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ (0 เดฌเตˆเดฑเตเดฑเตเด•เตพ). เดซเต€เตฝเดกเต C 1 เดฌเตˆเดฑเตเดฑเต เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเต.
5) K, Z. เดฎเตเดฎเตเดชเดคเตเดคเต† เด•เต‡เดธเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต. K เดซเต€เตฝเดกเดฟเดฒเต† เดฎเต‚เดฒเตเดฏเด‚ Z - 1-เตฝ 0 เดฌเตˆเดฑเตเดฑเดพเดฃเต.
6) I, J. เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด…เดจเตเดธเดฐเดฟเดšเตเดšเต, เดฐเดฃเตเดŸเต เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเด‚ 2 เดฌเตˆเดฑเตเดฑเตเด•เตพ เดŽเดŸเตเด•เตเด•เตเด‚. เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดŸเตเดคเตเดค เดซเต‹เตผเดฎเตเดฒ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดฆเตˆเตผเด˜เตเดฏเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจเต: เดฑเต—เดฃเตเดŸเต ( (1 + 0)/2) +1 = 1 + 1 = 2.
7) J, X. J เดซเต€เตฝเดกเดฟเดฒเต† เดฎเต‚เดฒเตเดฏเด‚ 2 เดฌเตˆเดฑเตเดฑเตเด•เตพ เดŽเดŸเตเด•เตเด•เตเด‚, X เดซเต€เตฝเดกเดฟเดฒเต† เดฎเต‚เดฒเตเดฏเด‚ 2 เดฌเตˆเดฑเตเดฑเตเด•เตพ เดŽเดŸเตเด•เตเด•เตเด‚.

เดฎเตŠเดคเตเดคเดคเตเดคเดฟเตฝ, เดถเดฐเดฟเดฏเดพเดฏ เด“เดชเตเดทเดจเตเด•เตพ เด‡เดตเดฏเดพเดฃเต: เดธเดฟ, เด•เต†, เด, เดœเต†, เดœเต†, เดŽเด•เตเดธเต.

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 เตฝ เดจเดฟเดจเตเดจเต เด‰เดฆเตเดงเดฐเดฟเดšเตเดšเดคเต):

เด’เดฐเต เดฌเดฟ-เดŸเตเดฐเต€ เดธเต‚เดšเดฟเด•เดฏเตเด•เตเด•เต, เดธเต‚เดšเดฟเด• เดฎเต‚เดฒเตเดฏเดตเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเต เดตเดฐเดฟเด•เดณเตเดŸเต† เดซเดฟเดธเดฟเด•เตเด•เตฝ เด—เตเดฐเต‚เดชเตเดชเดฟเด‚เด—เต เดธเต‚เดšเดฟเด• เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเด‚เด—เต เด˜เดŸเด•เด‚ เด…เดณเด•เตเด•เตเดจเตเดจเต.

เดšเดฟเดฒ เดšเต‹เดฆเตเดฏเด™เตเด™เตพเด•เตเด•เต เด‡เตปเดกเต†เด•เตเดธเต เดธเตเด•เดพเตป เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดซเตเตพ เดŸเต‡เดฌเดฟเตพ เดธเตเด•เดพเตป เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฃเต‹ เดŽเดจเตเดจเต เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เดพเตป เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเดฑเดฟเดจเต† เด‡เตปเดกเต†เด•เตเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเด‚เด—เต เด˜เดŸเด•เด‚ เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต). เด•เตเดฑเดžเตเดž เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเด‚เด—เต เด˜เดŸเด•เด‚ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏ เดธเต‚เดšเดฟเด• เดธเตเด•เดพเดจเดฟเดจเต† เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เด’เดฐเต เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต† เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเต‹เดŸเต เด…เดŸเตเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเด‚เด—เต เด˜เดŸเด•เด‚ เดธเต‚เดšเดฟเด• เด•เต€ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเดŸเตเดŸเดฟเด• เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเดฟเตฝ เดตเดฐเดฟเด•เตพ เดญเต—เดคเดฟเด•เดฎเดพเดฏเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด’เดฐเต เดชเต‚เตผเดฃเตเดฃ เดŸเต‡เดฌเดฟเตพ เดธเตเด•เดพเตป เดจเดŸเดคเตเดคเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดธเต‚เดšเดฟเด• เด•เต€ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดŸเตเด•เตเด•เดฟเดฏ เดกเดฟเดธเตเด•เดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเดฐเดฟเด•เตพ เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เดพเตป เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดชเตเดฐเดตเดฃเดค เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต. เดตเดฐเดฟเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเต‹เดŸเต เด…เดŸเตเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเด‚เด—เต เด˜เดŸเด•เด‚ เดธเต‚เดšเดฟเด• เด•เต€เดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเดฟเดฒเตเดŸเดจเต€เดณเด‚ เดตเดฐเดฟเด•เตพ เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏเดฟ เดšเดฟเดคเดฑเดฟเด•เตเด•เดฟเดŸเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด’เดฐเต เดซเตเตพ เดŸเต‡เดฌเดฟเตพ เดธเตเด•เดพเตป เดจเดŸเดคเตเดคเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดˆ เดธเต‚เดšเดฟเด• เด•เต€ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดŸเตเด•เตเด•เดฟเดฏ เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดตเดฐเดฟเด•เตพ เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เดฟเดฒเตเดฒ.

เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดกเดพเดฑเตเดฑ เดฎเดฟเด•เดšเตเดš เดฐเต€เดคเดฟเดฏเดฟเตฝ เด…เดŸเตเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเด‚เด—เต เด˜เดŸเด•เด‚ เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต† เด…เดงเดฟเดจเดฟเดตเต‡เดถ เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเดฟเดจเต เดคเตเดฒเตเดฏเดฎเต‹ เด…เดคเดฟเดจเดŸเตเดคเตเดคเต‹ เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. 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 เดฌเตˆเดฑเตเดฑเตเด•เตพ + เดฑเต‹เดฏเตเดกเต เดฆเตˆเตผเด˜เตเดฏเด‚ เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ) เดธเต‚เดšเดฟเด• เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตฝ Oracle เด…เดจเตเดตเดฆเดฟเด•เตเด•เดฟเดฒเตเดฒ. N = 200 (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเดฟเตฝ เด•เตเดฑเดตเต) เดธเต‚เดšเดฟเด• เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเตเดฐเดถเตเดจเด™เตเด™เดณเดฟเดฒเตเดฒเดพเดคเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚.

APPEND เดธเต‚เดšเดจเดฏเตเดณเตเดณ INSERT เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดกเดฏเดฑเด•เตเดŸเต เดฎเต‹เดกเดฟเตฝ เดกเดพเดฑเตเดฑ เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเดพเตป เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดŸเตเดฐเดฟเด—เตผ เดคเต‚เด™เตเด™เดฟเด•เตเด•เดฟเดŸเด•เตเด•เตเดจเตเดจ เดฎเต‡เดถเดฏเดฟเตฝ เด‡เดคเต เดชเตเดฐเดฏเต‹เด—เดฟเดšเตเดšเดพเตฝ เดŽเดจเตเดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚?

  • เดกเดพเดฑเตเดฑ เดกเดฏเดฑเด•เตเดŸเต เดฎเต‹เดกเดฟเตฝ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด‚, เดŸเตเดฐเดฟเด—เตผ เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดš เดชเต‹เดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚
  • เดกเดพเดฑเตเดฑ เดกเดฏเดฑเด•เตเดŸเต เดฎเต‹เดกเดฟเตฝ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด‚, เดชเด•เตเดทเต‡ เดŸเตเดฐเดฟเด—เตผ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ
  • เดกเดพเดฑเตเดฑ เดชเดฐเดฎเตเดชเดฐเดพเด—เดค เดฎเต‹เดกเดฟเตฝ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด‚, เดŸเตเดฐเดฟเด—เตผ เด…เดคเต เดชเต‹เดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚
  • เดกเดพเดฑเตเดฑ เดชเดฐเดฎเตเดชเดฐเดพเด—เดค เดฎเต‹เดกเดฟเตฝ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เดŸเตเดฐเดฟเด—เตผ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ
  • เดกเดพเดฑเตเดฑ เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ, เด’เดฐเต เดชเดฟเดถเด•เต เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเตเด‚

เดฎเดฑเตเดชเดŸเดฟเด…เดŸเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ, เด‡เดคเต เดฏเตเด•เตเดคเดฟเดฏเตเดŸเต† เด’เดฐเต เดšเต‹เดฆเตเดฏเดฎเดพเดฃเต. เดถเดฐเดฟเดฏเดพเดฏ เด‰เดคเตเดคเดฐเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป, เดžเดพเตป เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดจเตเดฏเดพเดฏเดตเดพเดฆ เดฎเดพเดคเตƒเด• เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเต:

  1. เด‰เดฏเตผเดจเตเดจ เดตเต‡เด—เดค เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจ SQL เดŽเดžเตเดšเดฟเตป เดฎเดฑเดฟเด•เดŸเดจเตเดจเต เด’เดฐเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเต‹เด•เตเด•เดฟเดจเตเดฑเต† เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เดฐเต‚เดชเต€เด•เดฐเดฃเดคเตเดคเดฟเดฒเต‚เดŸเต†เดฏเดพเดฃเต เดกเดฏเดฑเด•เตเดŸเต เดฎเต‹เดกเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตฝ เดจเดŸเดคเตเดคเตเดจเตเดจเดคเต. เด…เดคเดฟเดจเดพเตฝ, เดŸเตเดฐเดฟเด—เดฑเดฟเดจเตเดฑเต† เดจเดฟเตผเดตเตเดตเดนเดฃเด‚ เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต, เด…เดธเดพเดงเตเดฏเดฎเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด‡เดคเดฟเตฝ เด•เดพเดฐเตเดฏเดฎเดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เด‡เดคเต เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเดฟเดจเต† เดธเดฎเต‚เดฒเดฎเดพเดฏเดฟ เดฎเดจเตเดฆเด—เดคเดฟเดฏเดฟเดฒเดพเด•เตเด•เตเด‚.
  2. เดŸเตเดฐเดฟเด—เตผ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเตฝ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเดคเต, เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต† เดกเดพเดฑเตเดฑ เด’เดจเตเดจเตเดคเดจเตเดจเต†เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเตเดฑเต† เดฎเตŠเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เด…เดตเดธเตเดฅ (เดฎเดฑเตเดฑเต เดชเดŸเตเดŸเดฟเด•เด•เตพ) เดˆ เดกเดพเดฑเตเดฑ เดšเต‡เตผเดคเตเดค เดฎเต‹เดกเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเด‚ เดŽเดจเตเดจ เดตเดธเตเดคเตเดคเดฏเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเด‚. เด‡เดคเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏเตเด‚ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เดธเดฎเด—เตเดฐเดคเดฏเต† เดจเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚, เด‰เตฝเดชเตเดชเดพเดฆเดจเดคเตเดคเดฟเตฝ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ.
  3. เด…เดญเตเดฏเตผเดคเตเดฅเดฟเดšเตเดš เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดจเดŸเดคเตเดคเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเดฟเดฒเตเดฒเดพเดฏเตเดฎ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด’เดฐเต เดชเดฟเดถเด•เดพเดฏเดฟ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เด‡เดตเดฟเดŸเต† APPEND เดŽเดจเตเดจเดคเต เด’เดฐเต เดธเต‚เดšเดจเดฏเดพเดฃเต†เดจเตเดจเต เด“เตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต, เดธเดพเดงเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ เด…เดต เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เตเด‚ เดŽเดจเตเดจเดคเดพเดฃเต เดธเต‚เดšเดจเด•เดณเตเดŸเต† เดชเตŠเดคเตเดตเดพเดฏ เดฏเตเด•เตเดคเดฟ, เดชเด•เตเดทเต‡ เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดธเต‚เดšเดจ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เดพเดคเต† เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚.

เด…เดคเดฟเดจเดพเตฝ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจ เด‰เดคเตเดคเดฐเด‚ เดกเดพเดฑเตเดฑ เดธเดพเดงเดพเดฐเดฃ (SQL) เดฎเต‹เดกเดฟเตฝ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚, เดŸเตเดฐเดฟเด—เตผ เดซเดฏเตผ เดšเต†เดฏเตเดฏเตเด‚.

เด’เดฑเดพเด•เตเด•เดฟเตพ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด…เดจเตเดธเดฐเดฟเดšเตเดšเต (8.04 เตฝ เดจเดฟเดจเตเดจเต เด‰เดฆเตเดงเดฐเดฟเดšเตเดšเดคเต):

เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด™เตเด™เดณเตเดŸเต† เดฒเด‚เด˜เดจเด™เตเด™เตพ, เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เดณเต‹ เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเต‹ เด‡เดฒเตเดฒเดพเดคเต†, เดชเดฐเดฎเตเดชเดฐเดพเด—เดค เด‡เตปเดธเต‡เตผเดŸเตเดŸเต เดชเดพเดคเตเดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดธเต€เดฐเดฟเดฏเตฝ เด†เดฏเดฟ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เดชเตเดฐเดธเตเดคเดพเดตเดจเดฏเตเด•เตเด•เต เด•เดพเดฐเดฃเดฎเดพเด•เตเด‚. เด’เดฐเต เด‡เดŸเดชเดพเดŸเดฟเตฝ เด’เดฐเต‡ เดŸเต‡เดฌเดฟเดณเดฟเตฝ เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดคเดตเดฃ เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เตพเด•เตเด•เตเดณเตเดณ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดฎเดพเดฃเต เด’เดฐเต เด…เดชเดตเดพเดฆเด‚, เด‡เดคเต เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฐเดฃเดฎเดพเด•เตเด‚.
เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เดŸเตเดฐเดฟเด—เดฑเตเด•เดณเต‹ เดฑเดซเดฑเตปเดทเตเดฏเตฝ เดธเดฎเด—เตเดฐเดคเดฏเต‹ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ เดกเดฏเดฑเด•เตเดŸเต-เดฒเต‹เดกเต INSERT (เดธเต€เดฐเดฟเดฏเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเดพเดฐเดฒเตฝ), เด…เดคเตเดชเต‹เดฒเต† เดชเดพเดฐเดฒเตฝ เดธเต‚เดšเดจ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เตเดฒเต‹เดธเต เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด…เดจเตเดฌเดจเตเดง เดธเต‚เดšเดจ เด…เดตเด—เดฃเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดŽเดจเตเดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚?

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);

  • เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏ เดชเต‚เตผเดคเตเดคเต€เด•เดฐเดฃเด‚
  • เดตเดพเด•เตเดฏเด˜เดŸเดจ เดชเดฟเดถเด•เต เด•เดพเดฐเดฃเด‚ เดชเดฐเดพเดœเดฏเด‚
  • เดชเดฟเดถเด•เต: เดธเตเดตเดฏเด‚เดญเดฐเดฃ เด‡เดŸเดชเดพเดŸเต เดธเดพเดงเตเดคเดฏเตเดณเตเดณเดคเดฒเตเดฒ
  • เดชเดฐเดฎเดพเดตเดงเดฟ เด•เต‹เตพ เดจเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต เด•เดตเดฟเดฏเตเดจเตเดจเดคเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดชเดฟเดถเด•เต
  • เดตเดฟเดฆเต‡เดถ เด•เต€ เดฒเด‚เด˜เดจ เดชเดฟเดถเด•เต
  • เดฒเต‹เด•เตเด•เตเด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดชเดฟเดถเด•เต

เดฎเดฑเตเดชเดŸเดฟเดชเดŸเตเดŸเดฟเด•เดฏเตเด‚ เดŸเตเดฐเดฟเด—เดฑเตเด‚ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดชเตเดฐเดถเตเดจเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เดฐเตเดคเต. เด’เดฐเต เดŸเตเดฐเดฟเด—เดฑเดฟเดฒเต† เดธเตเดตเดฏเด‚เดญเดฐเดฃ เด‡เดŸเดชเดพเดŸเตเด•เดณเตเด‚ เด…เดจเตเดตเดฆเดจเต€เดฏเดฎเดพเดฃเต, เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ เดฒเต‹เด—เดฟเด‚เด—เต เดธเดพเดงเตเดฏเดฎเดพเด•เดฟเดฒเตเดฒ, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต.

เด†เดฆเตเดฏ เดตเดฐเดฟ เดšเต‡เตผเดคเตเดค เดถเต‡เดทเด‚, เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏ เด’เดฐเต เดŸเตเดฐเดฟเด—เตผ เดซเดฏเดฑเดฟเด‚เด—เต, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดตเดฐเดฟ เดคเดฟเดฐเตเด•เดพเตป เด‡เดŸเดฏเดพเด•เตเด•เตเด‚, เดŸเตเดฐเดฟเด—เตผ เดตเต€เดฃเตเดŸเตเด‚ เดคเต€เดชเดฟเดŸเดฟเด•เตเด•เดพเตป เด‡เดŸเดฏเดพเด•เตเด•เตเด‚, เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต† เดตเดฐเดฟ เดคเดฟเดฐเตเด•เตเด•เดฏเตเด‚, เด•เต‹เดณเตเด•เดณเตเดŸเต† เดชเดฐเดฎเดพเดตเดงเดฟ เดจเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต เด•เดตเดฟเดžเตเดžเดคเดฟเดจเดพเตฝ เดชเตเดฐเดธเตเดคเดพเดตเดจ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเดคเตเดตเดฐเต†. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดฎเดฑเตเดฑเตŠเดฐเต เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏ เด•เดพเดฐเตเดฏเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เดŸเตเดฐเดฟเด—เตผ เดจเดฟเตผเดตเตเดตเดนเดฟเด•เตเด•เตเดจเตเดจ เดธเดฎเดฏเดคเตเดคเต, เด†เดฆเตเดฏเด‚ เดšเต‡เตผเดคเตเดค เดฑเต†เด•เตเด•เต‹เตผเดกเดฟเดจเตเดฑเต† เด•เดฎเตเดฎเดฟเดฑเตเดฑเต เด‡เดคเตเดตเดฐเต† เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เด…เดคเดฟเดจเดพเตฝ, เด’เดฐเต เดธเตเดตเดฏเด‚เดญเดฐเดฃ เด‡เดŸเดชเดพเดŸเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดŸเตเดฐเดฟเด—เตผ เด‡เดคเตเดตเดฐเต† เดชเตเดฐเดคเดฟเดœเตเดžเดพเดฌเดฆเตเดงเดฎเดฒเตเดฒเดพเดคเตเดค เด’เดฐเต เดฑเต†เด•เตเด•เต‹เตผเดกเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดตเดฟเดฆเต‡เดถ เด•เต€เดฏเต† เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดตเดฐเดฟ เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เด’เดฐเต เด•เดพเดคเตเดคเดฟเดฐเดฟเดชเตเดชเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเดจเตเดจเต (เดธเตเดตเดฏเด‚เดญเดฐเดฃ เด‡เดŸเดชเดพเดŸเต เดชเตเดฐเดงเดพเดจ เด‡เดŸเดชเดพเดŸเดฟเดจเต เดกเดพเดฑเตเดฑ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เด•เดดเดฟเดฏเตเดฎเต‹ เดŽเดจเตเดจเต เดจเต‹เด•เตเด•เดพเตป เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต) เด…เดคเต‡ เดธเดฎเดฏเด‚ เดชเตเดฐเดงเดพเดจ เด‡เดŸเดชเดพเดŸเต เดŸเตเดฐเดฟเด—เดฑเดฟเดจเต เดถเต‡เดทเด‚ เดธเตเดตเดฏเด‚เดญเดฐเดฃ เด‡เดŸเดชเดพเดŸเต เดคเตเดŸเดฐเตเดจเตเดจเดคเดฟเดจเต เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดกเต†เดกเตโ€Œเดฒเต‹เด•เตเด•เต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ, เดฒเต‹เด•เตเด•เตเด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เดธเตเดตเดฏเด‚เดญเดฐเดฃ เด‡เดŸเดชเดพเดŸเต เดฑเดฆเตเดฆเดพเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต.

เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดค เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเต‡ เดธเตผเดตเต‡เดฏเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚. เดธเตˆเตป เด‡เตปเดฆเดฏเดตเดพเดฏเดฟ.

เด…เดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต‹?

  • เดฐเดฃเตเดŸเต เดตเดฟเดฐเดฒเตเด•เตพ เดชเต‹เดฒเต†, เดžเดพเตป เดŽเดฒเตเดฒเดพเด‚ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต.

  • เดถเดฐเดฟเดฏเดฒเตเดฒ, เดฐเดฃเตเดŸเต เดšเต‹เดฆเตเดฏเด™เตเด™เดณเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เดคเต†เดฑเตเดฑเตเดชเดฑเตเดฑเดฟ.

  • เดžเดพเตป เด…เดคเดฟเดจเตเดฑเต† เดชเด•เตเดคเดฟ เดถเดฐเดฟเดฏเดพเด•เตเด•เดฟ.

  • เดžเดพเตป เด‰เดคเตเดคเดฐเด‚ เดฐเดฃเตเดŸเตเดคเดตเดฃ เดŠเดนเดฟเดšเตเดšเต!

  • เดžเดพเตป เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดŽเดดเตเดคเดพเด‚

14 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเต‹เดŸเตเดŸเต เดšเต†เดฏเตเดคเต. 10 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเดฟเดŸเตเดŸเตเดจเดฟเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•