temps d'exéc très différent sur DELETE entre SQL et PL/SQL
Bonjour,
Je tente de faire un DELETE massif de 82000 rows d'une table, sur un champ qui est INDEXE.
J'ai effectué plusieurs fois le même test, sur la même table, avec les mêmes données, pour être certain que la différence ne venait pas d'une charge différente de la machine à plusieurs moments, mais le résultat est toujours le même :
1) Via FORMS :
13:28:33 - del_imgext(253,OUI) BEGIN
13:29:23 - 82000 valeur image deleted
13:29:24 - 1 image deleted
13:29:24 - del_imgext(253,OUI) END
Donc environ 50 secondes...
2) Via PL/SQL sous Toad :
Code:
1 2 3 4 5 6
|
BEGIN
DBMS_OUTPUT.put_line (TO_CHAR (SYSDATE, 'hh24:mi:ss'));
mgckgimgext.del_imgext (253, 'OUI');
DBMS_OUTPUT.put_line (TO_CHAR (SYSDATE, 'hh24:mi:ss'));
END; |
14:03:08
14:03:48
Soit environ 40 secondes...
3) DELETE Direct en PL/SQL sous Toad :
Code:
1 2 3 4 5 6 7
|
BEGIN
DBMS_OUTPUT.put_line (TO_CHAR (SYSDATE, 'hh24:mi:ss'));
DELETE FROM valeur_image
WHERE idtimgext = 253;
DBMS_OUTPUT.put_line (TO_CHAR (SYSDATE, 'hh24:mi:ss'));
END; |
14:05:08
14:05:49
Soit environ 40 secondes...
4) DELETE Direct en SQL sous Toad :
Code:
1 2 3
|
DELETE FROM valeur_image
WHERE idtimgext = 253; |
Environ 18 secondes...
Donc 1 (50") > 2 (40") = 3 (40") > 4 (18")
On passe presque du simple au triple entre 1 et 4 ...
Si quelqu'un a une idée.... Moi je perds mon latin...
Merci!