1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| declare
name1 varchar(256);
ltimestamp_start timestamp;
ltimestamp_stop timestamp;
linterval_diff interval day to second;
ldt_temp date;
begin
EXECUTE IMMEDIATE 'ALTER SYSTEM FLUSH SHARED_POOL';
EXECUTE IMMEDIATE 'ALTER SYSTEM FLUSH buffer_cache';
ltimestamp_start := systimestamp;
for i in 1 .. 1e4 loop
UPDATE TOTO a
SET a.ID_SUCCESSEUR = (SELECT c.ID
FROM TOTO c
WHERE c.dt_creation = (SELECT MIN(b.dt_creation)
FROM TOTO b
WHERE a.code = b.code
AND a.dt_creation < b.dt_creation));
end loop;
ltimestamp_stop := systimestamp;
linterval_diff := ltimestamp_stop - ltimestamp_start;
dbms_output.put_line(CHR(10)||LPAD('=',22,'=')||CHR(10));
dbms_output.put_line('Waldar Runtime '||CHR(10)||LPAD('=',22,'='));
dbms_output.put_line(
' Days : '||EXTRACT(DAY FROM linterval_diff)||CHR(10)||
' Hours : '||EXTRACT(HOUR FROM linterval_diff)||CHR(10)||
' Minutes : '||EXTRACT(MINUTE FROM linterval_diff)||CHR(10)||
' Seconds : '||EXTRACT(SECOND FROM linterval_diff) );
EXECUTE IMMEDIATE 'ALTER SYSTEM FLUSH SHARED_POOL';
EXECUTE IMMEDIATE 'ALTER SYSTEM FLUSH buffer_cache';
ltimestamp_start := systimestamp;
for i in 1 .. 1e4 loop
update toto a
set a.id_successeur = (select val from
(
select id,lead(b.id) over(partition by code order by b.dt_creation) as val
from toto b
)
where id = a.id
);
end loop;
ltimestamp_stop := systimestamp;
linterval_diff := ltimestamp_stop - ltimestamp_start;
dbms_output.put_line(CHR(10)||LPAD('=',22,'=')||CHR(10));
dbms_output.put_line('memorex Runtime '||CHR(10)||LPAD('=',22,'='));
dbms_output.put_line(
' Days : '||EXTRACT(DAY FROM linterval_diff)||CHR(10)||
' Hours : '||EXTRACT(HOUR FROM linterval_diff)||CHR(10)||
' Minutes : '||EXTRACT(MINUTE FROM linterval_diff)||CHR(10)||
' Seconds : '||EXTRACT(SECOND FROM linterval_diff) );
EXECUTE IMMEDIATE 'ALTER SYSTEM FLUSH SHARED_POOL';
EXECUTE IMMEDIATE 'ALTER SYSTEM FLUSH buffer_cache';
ltimestamp_start := systimestamp;
for i in 1 .. 1e4 loop
UPDATE TOTO a
SET a.ID_SUCCESSEUR = (SELECT min(c.ID) keep(dense_rank first ORDER BY c.dt_creation)
FROM TOTO c
WHERE a.dt_creation < c.dt_creation);
end loop;
ltimestamp_stop := systimestamp;
linterval_diff := ltimestamp_stop - ltimestamp_start;
dbms_output.put_line(CHR(10)||LPAD('=',22,'=')||CHR(10));
dbms_output.put_line('pcman Runtime '||CHR(10)||LPAD('=',22,'='));
dbms_output.put_line(
' Days : '||EXTRACT(DAY FROM linterval_diff)||CHR(10)||
' Hours : '||EXTRACT(HOUR FROM linterval_diff)||CHR(10)||
' Minutes : '||EXTRACT(MINUTE FROM linterval_diff)||CHR(10)||
' Seconds : '||EXTRACT(SECOND FROM linterval_diff) );
end; |