αž€αžΆαžšαžŠαžΎαžšαžαžΆαž˜αž‚αž“αŸ’αž›αž„αž“αŸƒ Highload++ Siberia 2019 - αž€αž·αž…αŸ’αž…αž€αžΆαžš 8 αž“αŸ…αž›αžΎ Oracle

αž‡αŸ†αžšαžΆαž”αžŸαž½αžš!

αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 24-25 αžαŸ‚αž˜αž·αžαž»αž“αžΆ αžŸαž“αŸ’αž“αž·αžŸαžΈαž‘ Highload++ Siberia 2019 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αž“αŸ… Novosibirsk αŸ” αž”αž»αžšαžŸαžšαž”αžŸαŸ‹αž™αžΎαž„αž€αŸαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αžŠαŸ‚αžš αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ "αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ Oracle containers (CDB/PDB) αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ" αž™αžΎαž„αž“αžΉαž„αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž€αŸ†αžŽαŸ‚αž’αžαŸ’αžαž”αž‘αž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™αž”αž“αŸ’αžαž·αž…αŸ” αžœαžΆαžαŸ’αžšαž‡αžΆαž€αŸ‹αžŽαžΆαžŸαŸ‹ αž’αžšαž‚αž»αžŽ αž’αžΌαž›αŸαž€αž”αŸŠαž»αž“αž“αžΈαž“ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž„αŸ’αž‚αž€αžΆαžš αž€αŸαžŠαžΌαž…αž‡αžΆαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αŸ”

αž€αžΆαžšαžŠαžΎαžšαžαžΆαž˜αž‚αž“αŸ’αž›αž„αž“αŸƒ Highload++ Siberia 2019 - αž€αž·αž…αŸ’αž…αž€αžΆαžš 8 αž“αŸ…αž›αžΎ Oracle
αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž αŸ„αŸ‡αž“αŸαŸ‡ αž™αžΎαž„αž…αž„αŸ‹αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž“αžΌαžœαž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž™αžΎαž„αž˜αžΆαž“αž“αŸ…αžŸαŸ’αžαž„αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„ αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ„αž™αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžΆαž€αž›αŸ’αž”αž„αž…αŸ†αž“αŸαŸ‡αžŠαžΉαž„ Oracle αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αžαžΆαž„αž€αŸ’αžšαŸ„αž˜β€‹αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž”αž‰αŸ’αž αžΆβ€‹αž‘αžΆαŸ†αž„ ៨ αž‡αž˜αŸ’αžšαžΎαžŸβ€‹αž…αž˜αŸ’αž›αžΎαž™ αž“αž·αž„β€‹αž€αžΆαžšβ€‹αž–αž“αŸ’αž™αž›αŸ‹αŸ”

αžαžΎαž’αŸ’αžœαžΈαž‡αžΆαžαž˜αŸ’αž›αŸƒαž›αŸ†αžŠαžΆαž”αŸ‹αž’αžαž·αž”αžšαž˜αžΆαžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αžƒαžΎαž‰αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžαžΆαž„αž€αŸ’αžšαŸ„αž˜?

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
  • αž‘αŸ αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž€αŸ†αž αž»αžŸ

αž†αŸ’αž›αžΎαž™αžαž”αž™αŸ„αž„αžαžΆαž˜αž―αž€αžŸαžΆαžš Oracle (αžŠαž€αžŸαŸ’αžšαž„αŸ‹αž–αžΈ 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

αž†αŸ’αž›αžΎαž™αžαž”αž™αŸ„αž„αžαžΆαž˜αž―αž€αžŸαžΆαžš Oracle (αžŠαž€αžŸαŸ’αžšαž„αŸ‹αž–αžΈ 11.2)αŸ–

αž˜αž»αž“αž–αŸαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸ SQL αžŽαžΆαž˜αž½αž™ Oracle αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž…αŸ†αžŽαž»αž…αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŠαŸ‚αž›αž”αž„αŸ’αž€αž”αŸ‹αž“αŸαž™ (αž˜αž·αž“αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž‘αŸ)αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαž”αžšαžΆαž‡αŸαž™ αž“αŸ„αŸ‡ Oracle αž“αžΉαž„αžœαž·αž›αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž αžΎαž™αžαŸ’αžšαž‘αž”αŸ‹αž€αžΌαžŠαž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαž”αžΆαž“αž‘αŸ… SQLCODE αž“αŸ…αž€αŸ’αž“αž»αž„ SQLCA αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸ INSERT αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αž€αŸ†αž αž»αžŸαžŠαŸ„αž™αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž‰αŸ’αž…αžΌαž›αžαž˜αŸ’αž›αŸƒαžŸαŸ’αž‘αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž·αž”αž·αž€αŸ’αžšαž˜αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž“αŸ„αŸ‡ αžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαž“αžΉαž„αžαŸ’αžšαž›αž”αŸ‹αž˜αž€αžœαž·αž‰αŸ”

αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž‘αŸ… HP αž–αžΈαž’αžαž·αžαž·αž‡αž“αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž…αžΆαžšαžŽαžΆ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαžαŸ‚αž˜αž½αž™αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžŠαŸ†αž”αžΌαž„αžšαž”αžŸαŸ‹ HP αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™ αžŠαŸ„αž™αž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž…αŸ†αž“αž½αž“αž”αžΈαŸ” αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αž‘αžΈαž–αžΈαžšαžšαž”αžŸαŸ‹ HP αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž€αŸ†αž αž»αžŸ αž αžΎαž™αžαŸ’αžšαž›αž”αŸ‹αž˜αž€αžœαž·αž‰αž“αžΌαžœαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž‘αžΈ XNUMX αžŠαŸ‚αž›αžœαžΆαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž…αžΌαž›αŸ” αž€αžΆαžšαž αŸ…αž‘αžΈαž”αžΈαž”αžšαžΆαž‡αŸαž™ αž αžΎαž™αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž”αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„.

αžαžΎαž˜αžΆαž“αž‡αž½αžšαžŠαŸαž€αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αžŠαŸ‚αž›αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž‚αŸ’αžšαžΈαž”αžαžΆαž„αž€αŸ’αžšαŸ„αž˜?

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

αž†αŸ’αž›αžΎαž™αžαž”αž™αŸ„αž„αžαžΆαž˜αž―αž€αžŸαžΆαžš Oracle (αžŠαž€αžŸαŸ’αžšαž„αŸ‹αž–αžΈ 11.2)αŸ–

αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŠαŸ‚αž›αž‡αž½αžšαž“αžΈαž˜αž½αž™αŸ—αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αžαŸ’αžšαžΌαžœαžαŸ‚αž”αŸ†αž–αŸαž‰αŸ” αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž”αŸ†αž–αŸαž‰β€‹αž€αžΆαžšβ€‹αžšαžΉαžβ€‹αž”αž“αŸ’αžαžΉαž„ αž‡αž½αžšβ€‹αž“αžΈαž˜αž½αž™αŸ—β€‹αž€αŸ’αž“αž»αž„β€‹αžαžΆαžšαžΆαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αžαŸ‚β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž›αž€αŸ’αžαžαžŽαŸ’αžŒβ€‹αžαžΆβ€‹αž–αž·αž αž¬β€‹αž˜αž·αž“β€‹αžŸαŸ’αž‚αžΆαž›αŸ‹ (αžŠαŸ„αž™αžŸαžΆαžšβ€‹αž‚αŸ’αž˜αžΆαž“β€‹αžαž˜αŸ’αž›αŸƒ)αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› Oracle αžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž›αž€αŸ’αžαžαžŽαŸ’αžŒαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αž½αžšαžŠαŸαž€αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αžˆαŸ’αž˜αŸ„αŸ‡αž‡αž½αžšαžˆαžšαžŽαžΆαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŸαŸ†αžŠαŸ…αž‘αŸ…αž›αžΎαžαž˜αŸ’αž›αŸƒαž‡αž½αžšαžˆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž½αžšαž“αŸ„αŸ‡αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαž˜αŸ’αž›αŸƒ 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, 'Π”', 'Вася');

  • A αž“αž·αž„ X
  • B αž“αž·αž„ Y
  • C αž“αž·αž„ K
  • C αž“αž·αž„ Z
  • K αž“αž·αž„ Z
  • αžαŸ’αž‰αž»αŸ† αž“αž·αž„ J
  • J αž“αž·αž„ X
  • αž”αžΆαž“αžšαžΆαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹

αž†αŸ’αž›αžΎαž™αžαž”αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαžŠαž€αžŸαŸ’αžšαž„αŸ‹αž…αŸαž‰αž–αžΈαž―αž€αžŸαžΆαžš (12.1.0.2) αžŸαŸ’αžαžΈαž–αžΈαž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž”αŸ’αžšαž—αŸαž‘αž•αŸ’αžŸαŸαž„αŸ—αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„ Oracle αŸ”

αž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™ CHAR
αž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™ CHAR αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαž”αŸ’αžšαžœαŸ‚αž„αžαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ†αžŽαž»αŸ†αžαž½αž’αž€αŸ’αžŸαžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŸαŸ†αžŽαž»αŸ†αžαž½αž’αž€αŸ’αžŸαžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” Oracle αž’αžΆαž“αžΆαžαžΆαžαž˜αŸ’αž›αŸƒαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αž‡αž½αžšαžˆαžš CHAR αž˜αžΆαž“αž”αŸ’αžšαžœαŸ‚αž„αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŠαŸ„αž™αž‘αŸ†αž αŸ†αž“αŸ…αž€αŸ’αž“αž»αž„ semantics αž”αŸ’αžšαžœαŸ‚αž„αžŠαŸ‚αž›αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αž‰αŸ’αž…αžΌαž›αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αžαŸ’αž›αžΈαž‡αžΆαž„αž”αŸ’αžšαžœαŸ‚αž„αž‡αž½αžšαžˆαžšαž“αŸ„αŸ‡ Oracle blank-pads αžαž˜αŸ’αž›αŸƒαž‘αŸ…αž”αŸ’αžšαžœαŸ‚αž„αž‡αž½αžšαžˆαžšαŸ”

αž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™ VARCHAR2
αž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™ VARCHAR2 αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαž”αŸ’αžšαžœαŸ‚αž„αž’αžαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ†αžŽαž»αŸ†αžαž½αž’αž€αŸ’αžŸαžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŸαŸ†αžŽαž»αŸ†αžαž½αž’αž€αŸ’αžŸαžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” Oracle αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžαž˜αŸ’αž›αŸƒαžαž½αž’αž€αŸ’αžŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž½αžšαžˆαžš VARCHAR2 αž™αŸ‰αžΆαž„αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠ αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžœαžΆ αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž…αž“αŸ’αž›αŸ„αŸ‡αž‘αž‘αŸαžŽαžΆαž˜αž½αž™ αž•αŸ’αžαž›αŸ‹αžαž˜αŸ’αž›αŸƒαž˜αž·αž“αž›αžΎαžŸαž–αžΈαž”αŸ’αžšαžœαŸ‚αž„αž“αŸƒαž‡αž½αžšαžˆαžšαŸ”

αž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™ NUMBER
αž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™ NUMBER αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŸαžΌαž“αŸ’αž™ αž€αŸαžŠαžΌαž…αž‡αžΆαž›αŸαžαžαŸαžšαžœαž·αž‡αŸ’αž‡αž˜αžΆαž“ αž“αž·αž„αž’αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžŠαžΆαž…αŸ‹αžαžΆαžαž…αžΆαž”αŸ‹αž–αžΈ 1.0 x 10-130 αžŠαž›αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž…αžΌαž› 1.0 x 10126αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž€αž“αŸ’αžŸαŸ„αž˜αž›αŸαžαž“αž–αŸ’αžœαž“αŸ’αž’αžŠαŸ‚αž›αžαž˜αŸ’αž›αŸƒαžšαž”αžŸαŸ‹αžœαžΆαž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžŠαžΆαž…αŸ‹αžαžΆαžαž’αŸ†αž‡αžΆαž„ αž¬αžŸαŸ’αž˜αžΎαž“αžΉαž„ 1.0 x 10126 αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ Oracle αžαŸ’αžšαž‘αž”αŸ‹αž€αŸ†αž αž»αžŸαŸ” αžαž˜αŸ’αž›αŸƒ NUMBER αž“αžΈαž˜αž½αž™αŸ—αž‘αžΆαž˜αž‘αžΆαžšαž–αžΈ 1 αž‘αŸ… 22 αž”αŸƒαŸ” αžŠαŸ„αž™αž‚αž·αžαž–αžΈαžœαžΆ αž‘αŸ†αž αŸ†αž‡αž½αžšαžˆαžšαž‚αž·αžαž‡αžΆαž”αŸƒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαž˜αŸ’αž›αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž›αŸαžαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ NUMBER(p) αžŠαŸ‚αž› p αž‡αžΆαž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™ αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžŽαž“αžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎαžšαžΌαž”αž˜αž“αŸ’αžαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ– ROUND((αž”αŸ’αžšαžœαŸ‚αž„(p)+s)/2))+1 αžŠαŸ‚αž› s αžŸαŸ’αž˜αžΎαžŸαžΌαž“αŸ’αž™ αž”αžΎαž›αŸαžαžœαž·αž‡αŸ’αž‡αž˜αžΆαž“ αž αžΎαž™ s αžŸαŸ’αž˜αžΎ 1 αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž›αŸαžαž’αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αŸ”

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž“αŸαŸ‡ αžŸαžΌαž˜αž›αžΎαž€αž™αž€αž€αžΆαžšαžŠαž€αžŸαŸ’αžšαž„αŸ‹αž…αŸαž‰αž–αžΈαž―αž€αžŸαžΆαžšαž’αŸ†αž–αžΈαž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžαž˜αŸ’αž›αŸƒ Null αŸ”

αž˜αŸ„αžƒαŸˆαž‚αžΊαž‡αžΆαž’αžœαžαŸ’αžŠαž˜αžΆαž“αž“αŸƒαžαž˜αŸ’αž›αŸƒαž€αŸ’αž“αž»αž„αž‡αž½αžšαžˆαžšαŸ” Nulls αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαžαŸ‹ αž˜αž·αž“αžŸαŸ’αž‚αžΆαž›αŸ‹ αž¬αž˜αž·αž“αž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαž”αžΆαž“αŸ” Nulls αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„ database αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž–αž½αž€αžœαžΆαž’αŸ’αž›αžΆαž€αŸ‹αž“αŸ…αž…αž“αŸ’αž›αŸ„αŸ‡αž‡αž½αžšαžˆαžšαžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž€αžΆαžš 1 αž”αŸƒαžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž”αŸ’αžšαžœαŸ‚αž„αž“αŸƒαž‡αž½αžšαžˆαžš (αžŸαžΌαž“αŸ’αž™) αŸ” αž€αžΆαžšβ€‹αž”αž“αŸ’αžβ€‹αž‘αž»αž€β€‹αž‡αžΆαž˜αŸ„αžƒαŸˆβ€‹αž€αŸ’αž“αž»αž„β€‹αž‡αž½αžšβ€‹αžŠαŸαž€β€‹αž˜αž·αž“β€‹αž‘αžΆαž˜αž‘αžΆαžšβ€‹αž€αž“αŸ’αž›αŸ‚αž„β€‹αž•αŸ’αž‘αž»αž€β€‹αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡β€‹αž”αž‹αž˜αž€αžαžΆβ€‹αž‡αž½αžšβ€‹αžŠαŸαž€β€‹αžαŸ’αž˜αžΈβ€‹αž•αŸ’αžαž›αŸ‹β€‹αžŸαž‰αŸ’αž‰αžΆβ€‹αžαžΆβ€‹αž‡αž½αžšβ€‹αžˆαžšβ€‹αžŠαŸ‚αž›β€‹αž“αŸ…β€‹αžŸαž›αŸ‹β€‹αž€αŸ’αž“αž»αž„β€‹αž‡αž½αžšβ€‹αž˜αž»αž“β€‹αž‚αžΊβ€‹αž‘αž‘αŸαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‡αž½αžšαžˆαžšαž”αžΈαž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸƒαžαžΆαžšαžΆαž„αž‚αžΊαž‘αž‘αŸ αž“αŸ„αŸ‡αž‚αŸ’αž˜αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŽαžΆαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αž½αžšαžˆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‘αŸαŸ”

αž•αŸ’αž’αŸ‚αž€αž›αžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž αŸαžαž»αž•αž›αŸ” αž™αžΎαž„αžŸαž“αŸ’αž˜αžαŸ‹αžαžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αŸ’αžšαžΎαž€αžΆαžšαž’αŸŠαž·αž“αž€αžΌαžŠ AL32UTF8 αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸŠαž·αž“αž€αžΌαžŠαž“αŸαŸ‡ αž’αž€αŸ’αžŸαžšαžšαž»αžŸαŸ’αžŸαŸŠαžΈαž“αžΉαž„αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹ 2 αž”αŸƒαŸ”

1) A αž“αž·αž„ X αžαž˜αŸ’αž›αŸƒαž“αŸƒαžœαžΆαž› '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 αž“αž·αž„ Z. αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž€αžšαžŽαžΈαž˜αž»αž“αŸ” αžαž˜αŸ’αž›αŸƒαž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαž› K αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹ 1 αž”αŸƒαž€αŸ’αž“αž»αž„ Z - 0 αŸ”
6) αžαŸ’αž‰αž»αŸ† αž“αž·αž„ J. αž™αŸ„αž„αžαžΆαž˜αž―αž€αžŸαžΆαžš αžαž˜αŸ’αž›αŸƒαž‘αžΆαŸ†αž„αž–αžΈαžšαž“αžΉαž„αž™αž€ 2 αž”αŸƒαŸ” αž™αžΎαž„αž‚αžŽαž“αžΆαž”αŸ’αžšαžœαŸ‚αž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαžšαžΌαž”αž˜αž“αŸ’αžαž™αž€αž…αŸαž‰αž–αžΈαž―αž€αžŸαžΆαžšαŸ– αž‡αž»αŸ†((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);

  • αž”αŸ’αžšαž αŸ‚αž›αžŠαž”αŸ‹
  • αž”αŸ’αžšαž αŸ‚αž›αžšαžΆαž”αŸ‹αžšαž™
  • αž”αŸ’αžšαž αŸ‚αž›αžšαžΆαž”αŸ‹αž–αžΆαž“αŸ‹αž“αžΆαž€αŸ‹αŸ”
  • αž”αŸ’αžšαž αŸ‚αž›αžšαžΆαž”αŸ‹αž˜αŸ‰αžΊαž“αž“αžΆαž€αŸ‹αŸ”

αž†αŸ’αž›αžΎαž™αžαž”αž™αŸ„αž„αžαžΆαž˜αž―αž€αžŸαžΆαžš Oracle (αžŠαž€αžŸαŸ’αžšαž„αŸ‹αž–αžΈ 12.1)αŸ–

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž“αŸ’αž‘αžŸαŸ’αžŸαž“αŸ B-tree αž€αžαŸ’αžαžΆαž…αž„αŸ’αž€αŸ„αž˜αž›αž·αž”αž·αž€αŸ’αžšαž˜αžœαžΆαžŸαŸ‹αžœαŸ‚αž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αž‡αžΆαž€αŸ’αžšαž»αž˜αž“αŸƒαž‡αž½αžšαžŠαŸαž€αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž‘αŸ…αž“αžΉαž„αžαž˜αŸ’αž›αŸƒαžŸαž“αŸ’αž‘αžŸαŸ’αžŸαž“αŸαŸ”

αž€αžαŸ’αžαžΆαž…αž„αŸ’αž€αŸ„αž˜αž›αž·αž”αž·αž€αŸ’αžšαž˜αž‡αž½αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžαžΆαžαžΎαž€αžΆαžšαžŸαŸ’αž€αŸαž“αž›αž·αž”αž·αž€αŸ’αžšαž˜αž¬αž€αžΆαžšαžŸαŸ’αž€αŸαž“αžαžΆαžšαžΆαž„αž–αŸαž‰αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αžŽαž½αžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹)αŸ” αž€αžαŸ’αžαžΆαž…αž„αŸ’αž€αŸ„αž˜αž‘αžΆαž”αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž€αžΆαžšαžŸαŸ’αž€αŸαž“αž›αž·αž”αž·αž€αŸ’αžšαž˜αž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ”

αž€αžαŸ’αžαžΆαž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ‚αž›αž“αŸ…αž‡αž·αžαž…αŸ†αž“αž½αž“αž”αŸ’αž›αž»αž€αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αž”αž„αŸ’αž αžΆαž‰αžαžΆ αž‡αž½αžšαžŠαŸαž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαž˜αŸ’αžšαŸ€αž”αžαžΆαž˜αžšαžΌαž”αžœαŸαž“αŸ’αžαž€αŸ’αž“αž»αž„αž”αŸ’αž›αž»αž€αžαžΆαžšαžΆαž„αžŠαŸ„αž™αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž…αž›αž·αž”αž·αž€αŸ’αžšαž˜αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαŸ’αž€αŸαž“αžαžΆαžšαžΆαž„αž–αŸαž‰ αž“αŸ„αŸ‡αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αžΆαž“αž‘αŸ†αž“αŸ„αžšαž‘αŸ…αž™αž€αž‡αž½αžšαžŠαŸαž€ αžŠαžΌαž…αžŠαŸ‚αž›αž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αŸ…αž›αžΎαžαžΆαžŸαžŠαŸ‚αž›αžαž˜αŸ’αžšαŸ€αž”αžŠαŸ„αž™αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž…αž›αž·αž”αž·αž€αŸ’αžšαž˜αŸ” αž€αžαŸ’αžαžΆαž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ‚αž›αž“αŸ…αž‡αž·αžαž…αŸ†αž“αž½αž“αž‡αž½αžšαžŠαŸαž€αž”αž„αŸ’αž αžΆαž‰αžαžΆαž‡αž½αžšαžŠαŸαž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αž…αžΆαžαŸ‹αžαŸ’αž…αžΆαž™αžŠαŸ„αž™αž…αŸƒαžŠαž“αŸ’αž™αž“αŸ…αž‘αžΌαž‘αžΆαŸ†αž„αž”αŸ’αž›αž»αž€αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž‚αž“αŸ’αž›αžΉαŸ‡αž›αž·αž”αž·αž€αŸ’αžšαž˜αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαŸ’αž€αŸαž“αžαžΆαžšαžΆαž„αž–αŸαž‰ αž“αŸ„αŸ‡αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αž˜αž·αž“αž‘αŸ…αž™αž€αž‡αž½αžšαžŠαŸαž€αž€αŸ’αž“αž»αž„αž›αŸ†αžŠαžΆαž”αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αžαž˜αŸ’αžšαŸ€αž”αžŽαžΆαž˜αž½αž™αžŠαŸ„αž™αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž…αž›αž·αž”αž·αž€αŸ’αžšαž˜αž“αŸαŸ‡αž‘αŸαŸ”

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαž˜αŸ’αžšαŸ€αž”αžαžΆαž˜αž§αžαŸ’αžŠαž˜αž‚αžαž· αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžαŸ’αžαžΆαž…αž„αŸ’αž€αŸ„αž˜αž“αžΉαž„αžŸαŸ’αž˜αžΎαž“αžΉαž„ αž¬αž‡αž·αžαž‘αŸ…αž“αžΉαž„αž…αŸ†αž“αž½αž“αž”αŸ’αž›αž»αž€αžŠαŸ‚αž›αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αŸ†αž αŸ†αž”αŸ’αž›αž»αž€αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš 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

αž†αŸ’αž›αžΎαž™αžαž”αž™αŸ„αž„αžαžΆαž˜αž―αž€αžŸαžΆαžš Oracle (αžŠαž€αžŸαŸ’αžšαž„αŸ‹αž–αžΈ 11.2)αŸ–

αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΌαž‡αžΈαžαž›

αž’αžΆαžαž»
αž”αŸ’αžšαž—αŸαž‘αž“αŸƒαžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹
αžαž˜αŸ’αž›αŸƒαž€αŸ†αžŽαžαŸ‹

αž›αž·αž”αž·αž€αŸ’αžšαž˜
αž‘αŸ†αž αŸ†αžŸαžšαž»αž”αž“αŸƒαž‡αž½αžšαžˆαžšαžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž›αž·αž”αž·αž€αŸ’αžšαž˜
75% αž“αŸƒαž‘αŸ†αž αŸ†αž”αŸ’αž›αž»αž€αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαž€αž•αŸ’αž“αŸ‚αž€αžαŸ’αž›αŸ‡

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž‘αŸ†αž αŸ†αžŸαžšαž»αž”αž“αŸƒαž‡αž½αžšαžˆαžšαžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž›αž·αž”αž·αž€αŸ’αžšαž˜αž˜αž·αž“αž‚αž½αžšαž›αžΎαžŸαž–αžΈ 6Kb αž‘αŸαŸ” αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž€αžΆαžšαž’αŸŠαž·αž“αž€αžΌαžŠαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸŠαž·αž“αž€αžΌαžŠ AL32UTF8 αžαž½αž’αž€αŸ’αžŸαžšαž˜αž½αž™αž’αžΆαž…αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹αž’αžαž·αž”αžšαž˜αžΆ 4 αž”αŸƒ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαŸαž’αžΆαž€αŸ’αžšαž€αŸ‹αž”αŸ†αž•αž»αž αž”αŸ’αžšαž αŸ‚αž› 6 αžαž½αž’αž€αŸ’αžŸαžšαž“αžΉαž„αžŸαž˜αž“αžΉαž„ 1500 αž‚αžΈαž‘αžΌαž”αŸƒαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ Oracle αž“αžΉαž„αž˜αž·αž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž›αž·αž”αž·αž€αŸ’αžšαž˜αž“αŸ… N = 400 (αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž”αŸ’αžšαžœαŸ‚αž„αžŸαŸ„αžšαžŠαŸαž’αžΆαž€αŸ’αžšαž€αŸ‹αž”αŸ†αž•αž»αžαž‚αžΊ 1600 αžαž½αž’αž€αŸ’αžŸαžš * 4 αž”αŸƒ + αž”αŸ’αžšαžœαŸ‚αž„αž‡αž½αžšαžŠαŸαž€) αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž› αž“αŸ… N = 200 (αž¬αžαž·αž…αž‡αžΆαž„) αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž›αž·αž”αž·αž€αŸ’αžšαž˜αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαŸ”

αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš INSERT αžŠαŸ‚αž›αž˜αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž‡αŸ†αž“αž½αž™ APPEND αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž•αŸ’αž‘αžΆαž›αŸ‹αŸ” αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž‘αŸ…αžαžΆαžšαžΆαž„αžŠαŸ‚αž›αž‚αž“αŸ’αž›αžΉαŸ‡αž–αŸ’αž™αž½αžš?

  • αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž•αŸ’αž‘αžΆαž›αŸ‹ αž‚αž“αŸ’αž›αžΉαŸ‡αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž€αžΆαžšαžšαŸ†αž–αžΉαž„αž‘αž»αž€
  • αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž•αŸ’αž‘αžΆαž›αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αž“αŸ’αž›αžΉαŸ‡αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž‘αŸαŸ”
  • αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αžŸαžΆαž˜αž‰αŸ’αž‰ αž‚αž“αŸ’αž›αžΉαŸ‡αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž‚αž½αžšαžαŸ‚
  • αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αžŸαžΆαž˜αž‰αŸ’αž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αž“αŸ’αž›αžΉαŸ‡αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž‘αŸαŸ”
  • αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž‘αŸ αž€αŸ†αž αž»αžŸαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžαŸ’αžšαžΆαž‘αž»αž€

αž†αŸ’αž›αžΎαž™αžαž”αž‡αžΆαž‘αžΌαž‘αŸ…αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžŸαŸ†αžŽαž½αžšαž“αŸƒαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αž…αž˜αŸ’αž›αžΎαž™αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž‚αŸ†αžšαžΌαž αŸαžαž»αž•αž›αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

  1. αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž”αŸ’αž›αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αžŠαŸ„αž™αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ SQL αžŠαŸ‚αž›αž’αžΆαž“αžΆαž“αžΌαžœαž›αŸ’αž”αžΏαž“αž›αžΏαž“αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž€αžΆαžšαž’αžΆαž“αžΆαžαžΆαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸƒαž‚αž“αŸ’αž›αžΉαŸ‡αž‚αžΊαž–αž·αž”αžΆαž€αžŽαžΆαžŸαŸ‹ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž… αž αžΎαž™αž‚αŸ’αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αžŽαžΆαž˜αž½αž™αž€αŸ’αž“αž»αž„αžšαžΏαž„αž“αŸαŸ‡αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž“αžΉαž„αž“αŸ…αžαŸ‚αž”αž“αŸ’αžαž™αž›αŸ’αž”αžΏαž“αž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αŸ”
  2. αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž‚αž“αŸ’αž›αžΉαŸ‡αž“αžΉαž„αž“αžΆαŸ†αž±αŸ’αž™αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αž‚αžΊαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ„αŸ‡αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΆαŸ†αž„αž˜αžΌαž› (αžαžΆαžšαžΆαž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αž) αž“αžΉαž„αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαžšαž”αŸ€αž”αžŠαŸ‚αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αŸ” αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžαžΆαžœαžΆαž“αžΉαž„αž”αŸ†αž•αŸ’αž›αžΆαž‰αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™ αž αžΎαž™αž˜αž·αž“αž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαž‡αžΆαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž€αž˜αŸ’αž˜αž”αžΆαž“αž‘αŸαŸ”
  3. αž’αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž‡αžΆαž‘αžΌαž‘αŸ…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž‡αžΆαž€αŸ†αž αž»αžŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž‚αž½αžšαž…αž„αž…αžΆαŸ†αžαžΆ APPEND αž‚αžΊαž‡αžΆαž–αŸαžαŸŒαž˜αžΆαž“αž‡αŸ†αž“αž½αž™ αž αžΎαž™αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž‘αžΌαž‘αŸ…αž“αŸƒαž–αŸαžαŸŒαž˜αžΆαž“αž‡αŸ†αž“αž½αž™αž‚αžΊαžαžΆαž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž™αž€αž˜αž€αž–αž·αž…αžΆαžšαžŽαžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αž·αž“αž˜αžΆαž“ αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŠαŸ„αž™αž˜αž·αž“αž‚αž·αžαž–αžΈαž–αŸαžαŸŒαž˜αžΆαž“αž‡αŸ†αž“αž½αž™αž“αŸ„αŸ‡αž‘αŸαŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž…αž˜αŸ’αž›αžΎαž™αžŠαŸ‚αž›αžšαŸ†αž–αžΉαž„αž‘αž»αž€αž‚αžΊ αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž’αž˜αŸ’αž˜αžαžΆ (SQL) αž‚αž“αŸ’αž›αžΉαŸ‡αž“αžΉαž„αž†αŸαŸ‡αŸ”

αž™αŸ„αž„αžαžΆαž˜αž―αž€αžŸαžΆαžš Oracle (αžŠαž€αžŸαŸ’αžšαž„αŸ‹αž–αžΈ 8.04)αŸ–

αž€αžΆαžšαž”αŸ†αž–αžΆαž“αž›αžΎαž€αžΆαžšαžšαžΉαžαž”αž“αŸ’αžαžΉαž„αž“αžΉαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαžŸαŸŠαŸαžšαžΈ αžŠαŸ„αž™αž”αŸ’αžšαžΎαž•αŸ’αž›αžΌαžœαž”αž‰αŸ’αž…αžΌαž›αž’αž˜αŸ’αž˜αžαžΆ αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“ αž¬αžŸαžΆαžšαž€αŸ†αž αž»αžŸαŸ” αž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„αž‚αžΊαž€αžΆαžšαžšαžΉαžαž”αž“αŸ’αžαžΉαž„αž›αžΎαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαžαžΆαžšαžΆαž„αžŠαžΌαž…αž‚αŸ’αž“αžΆαž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž˜αž½αž™αžŠαž„αž€αŸ’αž“αž»αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš αžŠαŸ‚αž›αž’αžΆαž…αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αžŸαžΆαžšαž€αŸ†αž αž»αžŸαŸ”
αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αŸαŸ‡ αž¬αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαžŸαŸαž…αž€αŸ’αžαžΈαž™αŸ„αž„αž˜αžΆαž“αžœαžαŸ’αžαž˜αžΆαž“αž“αŸ…αž›αžΎαžαžΆαžšαžΆαž„ αž“αŸ„αŸ‡αž–αŸαžαŸŒαž˜αžΆαž“αž‡αŸ†αž“αž½αž™ APPEND αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž˜αž·αž“αž’αžΎαž–αžΎ αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αŸ’αžšαžΎ 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 αž“αžΆαž€αŸ‹αž”αžΆαž“αž”αŸ„αŸ‡αž†αŸ’αž“αŸ„αžαŸ” αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ ៑ៀ αž“αžΆαž€αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αžΆαž˜αžƒαžΆαžαŸ‹αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹