| Богдан Гоцкий | А давайте письками помериимся (PL\SQL против T-SQL) :-) T-SQL, 3GHz проц, первые 40 записей за 14 сек выводит http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=518632#5203927 |
Давай, меремся:
SQL> set serveroutput on
SQL> set timing on
SQL> exec dbms_output.enable(1e6);
PL/SQL procedure successfully completed
Executed in 0,01 seconds
SQL>
SQL> declare
2 c CLOB := '1';
3 begin
4 FOR i IN 1..40 LOOP
5 c:=
6 replace(replace(replace(
7 replace(replace(replace(
8 replace(replace(replace(
9 replace(replace(replace(c,
10 '111','CA'),'222','CB'),'333','CC'),
11 '11','BA'),'22','BB'),'33','BC'),
12 '1','AA'),'2','AB'),'3','AC'),
13 'A','1'),'B','2'),'C','3');
14 dbms_output.put_line('['||i||']');
15 FOR j IN 0..trunc(length(c)/4000)
16 LOOP
17 dbms_output.put_line(substr(c,j*4000,4000));
18 END LOOP;
19 END LOOP;
20 end;
21 /
[1]
11
[2]
21
[3]
1211
[4]
111221
[5]
312211
[6]
13112221
... lines skipped ...
[40]
111312211312111322212...
... lines skipped ...
...322212311222122132113213221123
PL/SQL procedure successfully completed
Executed in 0,221 seconds
SQL> В данном случае длина обратно пропроциональна времени, т.е. у меня в 63 раза длиннее  |