рд╣рд╛рдИрд▓реЛрдб + ++ рд╕рд╛рдЗрдмреЗрд░рд┐рдпрд╛ 2019 рдХреЗ рдмрд╛рдж - 8 рдУрд░реЗрдХрд▓ рдЯрд╛рд╕реНрдХ

рдирдорд╕реНрддреЗ!

24-25 рдЬреВрди рдХреЛ, рдиреЛрд╡реЛрд╕рд┐рдмрд┐рд░реНрд╕реНрдХ рдореЗрдВ рд╣рд╛рдИрд▓реЛрдб ++ рд╕рд╛рдЗрдмреЗрд░рд┐рдпрд╛ 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 рд╕реЗ рдЙрджреНрдзреГрдд):
рдПрдХ рдПрдХрд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдмрдпрд╛рди рдХреЗ рднреАрддрд░, рдУрд░реЗрдХрд▓ рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЕрдиреБрдХреНрд░рдо рдмрдврд╝рд╛рдПрдЧрд╛ред рдпрджрд┐ рдХрд┐рд╕реА рдХрдерди рдореЗрдВ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдП 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 рд╕реЗ рдЙрджреНрдзреГрдд):

рдХрд┐рд╕реА рднреА рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдУрд░реЗрдХрд▓ рдПрдХ рдирд┐рд╣рд┐рдд рдмрдЪрдд рдмрд┐рдВрджреБ (рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ) рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░, рдпрджрд┐ рдХрдерди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдУрд░реЗрдХрд▓ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ SQLCODE рдореЗрдВ SQLCODE рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рддреНрд░реБрдЯрд┐ рдХреЛрдб рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдПрдХ INSERT рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдорд╛рди рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдХреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рддреЛ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдПрдХ рдХреЙрд▓ рдХреЛ рднреА рдПрдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдЪрдкреА рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рддреАрди рд░рд┐рдХреЙрд░реНрдб рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдХреЗ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ; рдПрдЪрдкреА рдХреА рджреВрд╕рд░реА рдХреЙрд▓ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЪреМрдереЗ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛; рддреАрд╕рд░реА рдХреЙрд▓ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рддреАрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрд┐рддрдиреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреА?


 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 рд╕реЗ рдЙрджреНрдзреГрдд):

рдПрдХ рдЪреЗрдХ рдмрд╛рдзрд╛ рдЖрдкрдХреЛ рдПрдХ рд╢рд░реНрдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рджреЗрддреА рд╣реИ рдЬрд┐рд╕рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд╛рдзрд╛ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕реНрдерд┐рддрд┐ рдХреЛ TRUE рдпрд╛ рдЕрдЬреНрдЮрд╛рдд (рдПрдХ рдирд▓ рдХреЗ рдХрд╛рд░рдг) рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рдУрд░реЗрдХрд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдмрд╛рдзрд╛ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреЛрдИ рднреА рд╕реНрддрдВрдн рдирд╛рдо рдЙрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реНрддрдВрдн рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╢реВрдиреНрдп рдорд╛рди рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░реЗрдЧрд╛, рдФрд░ рдЕрдирд╛рдо рдмреНрд▓реЙрдХ рдХреЛ рдорд╛рди рдбрд╛рд▓рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рддрдХ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред 3. рдЗрд╕рдХреЗ рдмрд╛рдж, рддреНрд░реБрдЯрд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдмреНрд▓реЙрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджреЗрдЧрд╛, рд░реЛрд▓рдмреИрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдорд╛рди 1, рдирд▓, 2 рдФрд░ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдЪрд╛рд░ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреА ред

рдореВрд▓реНрдпреЛрдВ рдХреЗ рдХреМрди рд╕реЗ рдЬреЛрдбрд╝реЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрдВрдЧреЗ?


 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 рдХреЙрд▓рдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рднреА рдорд╛рдиреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдЪрдпрдирд┐рдд рд▓рдВрдмрд╛рдИ рдХреЗ рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдореЗрдВ рдЖрдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдорд╛рди рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрддрдВрдн рдХреА рд▓рдВрдмрд╛рдИ рд╕реЗ рдХрдо рд╣реИ, рддреЛ Oracle рд░рд┐рдХреНрдд-рд╕реНрддрдВрдн рдХреЛ рд╕реНрддрдВрдн рдХреА рд▓рдВрдмрд╛рдИ рддрдХ рдорд╛рди рджреЗрддрд╛ рд╣реИред

VARCHAR2 рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░
VARCHAR2 рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд░реНрдг рд╕реЗрдЯ рдореЗрдВ рдПрдХ рдЪрд░-рд▓рдВрдмрд╛рдИ рд╡рд░реНрдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдЕрдкрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд░реНрдг рд╕реЗрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдУрд░реЗрдХрд▓ 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 рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдПрдХ рдЕрдВрд╢ рд▓реЗрддреЗ рд╣реИрдВред

рдПрдХ рдирд▓ рдПрдХ рд╕реНрддрдВрдн рдореЗрдВ рдорд╛рди рдХрд╛ рдЕрднрд╛рд╡ рд╣реИред рдирд▓ рдЧрд╛рдпрдм, рдЕрдЬреНрдЮрд╛рдд рдпрд╛ рдЕрдиреБрдкрдпреБрдХреНрдд рдбреЗрдЯрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред рдпрджрд┐ рд╡реЗ рдбреЗрдЯрд╛ рдорд╛рдиреЛрдВ рд╡рд╛рд▓реЗ рд╕реНрддрдВрднреЛрдВ рдХреЗ рдмреАрдЪ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд▓ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓рдо рдХреА рд▓рдВрдмрд╛рдИ (рд╢реВрдиреНрдп) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 1 рдмрд╛рдЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЯреБрд▓реНрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд▓ рдХреЛ рднрдВрдбрд╛рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рд╣реЗрдбрд░ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╢реЗрд╖ рдХреЙрд▓рдо рд╢реВрдиреНрдп рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЕрдВрддрд┐рдо рддреАрди рдХреЙрд▓рдо рдЕрд╢рдХреНрдд рд╣реИрдВ, рддреЛ рдЗрди рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрди рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рддрд░реНрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ 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 - 0 рдореЗрдВ 1 рдмрд╛рдЗрдЯ рд╣реИред
6) I рдФрд░ 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 рд╕реЗ рдЙрджреНрдзреГрдд):

рдмреА-рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП, рдЗрдВрдбреЗрдХреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдлреИрдХреНрдЯрд░ рдЗрдВрдбреЗрдХреНрд╕ рд╡реИрд▓реНрдпреВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рднреМрддрд┐рдХ рд╕рдореВрд╣рди рдХреЛ рдорд╛рдкрддрд╛ рд╣реИред

рдЗрдВрдбреЗрдХреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдлреИрдХреНрдЯрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрдВрдбреЗрдХреНрд╕ рд╕реНрдХреИрди рдпрд╛ рдлреБрд▓ рдЯреЗрдмрд▓ рд╕реНрдХреИрди рдХреБрдЫ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИ)ред рдПрдХ рдХрдо рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХрд╛рд░рдХ рдПрдХ рдХреБрд╢рд▓ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реНрдХреИрди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдмреНрд▓реЙрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХрд░реАрдм рдПрдХ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХрд╛рд░рдХ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рддрд╛рд▓рд┐рдХрд╛ рдмреНрд▓реЙрдХ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рднреМрддрд┐рдХ рд░реВрдк рд╕реЗ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХ рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рдбрд┐рд╕реНрдХ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВред рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХрд░реАрдм рдПрдХ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХрд╛рд░рдХ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реВрдЪрдХрд╛рдВрдХ рдХреБрдВрдЬреА рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВред рдпрджрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХ рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрд╕ рд╕реВрдЪрдХрд╛рдВрдХ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдХрд┐рд╕реА рднреА рдХреНрд░рдордмрджреНрдз рдХреНрд░рдо рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбреЗрдЯрд╛ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдлреИрдХреНрдЯрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдпрд╛ рдЙрд╕рдХреЗ рдХрд░реАрдм рд╣реЛрдЧрд╛ред 8 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреЗ рдорд╛рдирдХ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╣рдЬрд╛рд░ рд╕рдВрдХреАрд░реНрдг рд╕рдВрдЦреНрдпрд╛ рдореВрд▓реНрдп рдлрд┐рдЯ рд╣реЛрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдмреНрд▓реЙрдХ рдХреА рд╕рдВрдЦреНрдпрд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХрд╛рд░рдХ, рджрд╕рд┐рдпреЛрдВ рдХреЗ рдЖрджреЗрд╢ рдкрд░ рд╣реЛрдЧрд╛ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрди рдХреЗ рдореВрд▓реНрдпреЛрдВ рдкрд░ рдорд╛рдирдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдорд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?


 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 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд▓рдЧрднрдЧ 1,500 рд╡рд░реНрдгреЛрдВ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдУрд░реЗрдХрд▓ рдПрди = 400 рдкрд░ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рдПрдЧрд╛ (рдЬрдм рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрд╕рдХреА рд▓рдВрдмрд╛рдИ 1600 рдЕрдХреНрд╖рд░ * 4 рдмрд╛рдЗрдЯреНрд╕ + рдкрдВрдХреНрддрд┐рдмрджреНрдз рд▓рдВрдмрд╛рдИ) рд╣реИ, рдЬрдмрдХрд┐ рдПрди = 200 (рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо) рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рд╣реЛрдЧрд╛ред

APPEND рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде INSERT рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдбрд╛рдпрд░реЗрдХреНрдЯ рдореЛрдб рдореЗрдВ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЙрд╕ рдореЗрдЬ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рд▓рдЯрдХрд╛ рд╣реЛрддрд╛ рд╣реИ?


  • рдбреЗрдЯрд╛ рдХреЛ рдбрд╛рдпрд░реЗрдХреНрдЯ рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЯреНрд░рд┐рдЧрд░ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреИрд╕реЗ рдЙрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
  • рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЯреНрд░рд┐рдЧрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
  • рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЯреНрд░рд┐рдЧрд░ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреИрд╕реЗ рдЙрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
  • рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЯреНрд░рд┐рдЧрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
  • рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреНрд░реБрдЯрд┐ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧреА

рдЬрд╡рд╛рдм рд╣реИ
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рддрд░реНрдХ рдХрд╛ рдПрдХ рдкреНрд░рд╢реНрди рд╣реИред рд╕рд╣реА рдЙрддреНрддрд░ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рддрд░реНрдХ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЙрдбрд▓ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛:

  1. рдкреНрд░рддреНрдпрдХреНрд╖ рдореЛрдб рдореЗрдВ рд╕рдореНрдорд┐рд▓рди рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдЧрдарди рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрд╕рдХреНрдпреВрдПрд▓ рдЗрдВрдЬрди рдХреЛ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЙрдЪреНрдЪ рдЧрддрд┐ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЯреНрд░рд┐рдЧрд░ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЕрд░реНрде рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рд╡реИрд╕реЗ рднреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрдЧрд╛ред
  2. рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рдЗрд╕ рддрдереНрдп рдХреЛ рдЬрдиреНрдо рджреЗрдЧреА рдХрд┐, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдорд╛рди рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рдВрдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ (рдЕрдиреНрдп рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ) рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧреА рдХрд┐ рдбреЗрдЯрд╛ рдХрд┐рд╕ рдореЛрдб рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛ рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  3. рдЕрдиреБрд░реЛрдзрд┐рдд рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛, рдЖрдо рддреМрд░ рдкрд░ рдмреЛрд▓рдирд╛, рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ APPEND рдПрдХ рд╕рдВрдХреЗрдд рд╣реИ, рдФрд░ рд╕рдВрдХреЗрдд рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реНрдХ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЙрдиреНрд╣реЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдСрдкрд░реЗрдЯрд░ рдХреЛ рд╕рдВрдХреЗрдд рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗ рдмрд┐рдирд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдкреЗрдХреНрд╖рд┐рдд рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп (рдПрд╕рдХреНрдпреВрдПрд▓) рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЯреНрд░рд┐рдЧрд░ рдореЗрдВ рдЖрдЧ рд▓рдЧ рдЬрд╛рдПрдЧреАред

Oracle рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ (8.04 рд╕реЗ рдЙрджреНрдзреГрдд):

рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рдХрд╛рд░рдг рдмрдпрд╛рди рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рдпрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдмрд┐рдирд╛, рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдореНрдорд┐рд▓рд┐рдд рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдЕрдкрд╡рд╛рдж рдПрдХ рд▓реЗрдирджреЗрди рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдПрдХ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╡рд╛рд▓реЗ рдмрдпрд╛рдиреЛрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИ, рдЬреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЯреНрд░рд┐рдЧрд░ рдпрд╛ рд╕рдВрджрд░реНрднрд╛рддреНрдордХ рдЕрдЦрдВрдбрддрд╛ рдореЗрдЬ рдкрд░ рдореМрдЬреВрдж рд╣реИрдВ, рддреЛ рдЬрдм рдЖрдк рдбрд╛рдпрд░реЗрдХреНрдЯ-рд▓реЛрдб INSERT (рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдпрд╛ рд╕рдорд╛рдирд╛рдВрддрд░), рд╕рд╛рде рд╣реА рд╕рд╛рде PARALLEL рд╕рдВрдХреЗрдд рдпрд╛ рдЦрдВрдб, рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдкрд░ APPEND рд╕рдВрдХреЗрдд рдХреА рдЕрдирджреЗрдЦреА рдХреА рдЬрд╛рдПрдЧреАред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?


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

  • рд╕рдлрд▓ рдирд┐рд╖реНрдкрд╛рджрди
  • рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ рд╡рд┐рдлрд▓
  • рдЕрдорд╛рдиреНрдп рдСрдлрд╝рд▓рд╛рдЗрди рд▓реЗрдирджреЗрди рддреНрд░реБрдЯрд┐
  • рдЕрдзрд┐рдХрддрдо рдХреЙрд▓ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рд╕реЗ рдЕрдзрд┐рдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐
  • рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдЙрд▓реНрд▓рдВрдШрди рддреНрд░реБрдЯрд┐
  • рддрд╛рд▓рд╛ рддреНрд░реБрдЯрд┐

рдЬрд╡рд╛рдм рд╣реИ
рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдЯреНрд░рд┐рдЧрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ рдФрд░ рдЗрд╕ рдСрдкрд░реЗрд╢рди рд╕реЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЯреНрд░рд┐рдЧрд░ рдореЗрдВ рд╕реНрд╡рд╛рдпрддреНрдд рд▓реЗрдирджреЗрди рдХреА рднреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдЕрдиреНрдпрдерд╛, рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧрд┐рдВрдЧред

рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╕рдлрд▓ рдЯреНрд░рд┐рдЧрд░ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рдореНрдорд┐рд▓рди рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рдЬрдм рддрдХ рдХрд┐ рдХреЙрд▓ рдХреЗ рдЕрдзрд┐рдХрддрдо рдиреЗрд╕реНрдЯрд┐рдВрдЧ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдФрд░ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБ рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЬрд┐рд╕ рд╕рдордп рдЯреНрд░рд┐рдЧрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕ рд╕рдордп рдХрдорд┐рдЯ рдХреЛ рдкрд╣рд▓реЗ рд╕рдореНрдорд┐рд▓рд┐рдд рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╕реНрд╡рд╛рдпрддреНрдд рд▓реЗрдирджреЗрди рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЯреНрд░рд┐рдЧрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрднреА рддрдХ рдкреНрд░рддрд┐рдмрджреНрдз рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ (рдПрдХ рд╕реНрд╡рд╛рдпрддреНрдд рд▓реЗрдирджреЗрди рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдбреЗрдЯрд╛ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдореБрдЦреНрдп рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ) рдФрд░ рд╕рд╛рде рд╣реА рдореБрдЦреНрдп рд▓реЗрдирджреЗрди рдЯреНрд░рд┐рдЧрд░ рдХреЗ рдмрд╛рдж рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдпрддреНрдд рдкреНрд░рддрд┐рдмрджреНрдз рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЧрддрд┐рд░реЛрдз рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕реНрд╡рд╛рдпрддреНрдд рд▓реЗрдирджреЗрди рдХреЛ рддрд╛рд▓реЗ рд╕реЗ рдЬреБрдбрд╝реЗ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

Source: https://habr.com/ru/post/hi459680/


All Articles