Bonjour,
Existe t'il des différences de performances entre ces deux solutions :
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 delete * from table; commit; execute immediate 'delete * from table';![]()
Bonjour,
Existe t'il des différences de performances entre ces deux solutions :
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 delete * from table; commit; execute immediate 'delete * from table';![]()
Bonjour,
A priori il n'y a aucune différence. execute immediate permet simplement d'exécuter une commande DDL ou DML dans un bloc pl/sql.
Donc je dirais que les 2 sont identiques au niveau perf.
voili, voilou
It isn't that they can't see the solution, it's that they can't see the problem.
Mes Articles et Traductions (Microstrategy, Css et Javascript)
Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.
Non, elles ne sont pas identiques puisque dans un cas tu commit dans l'autre non.
NB : si tu delete toute ta table pourquoi ne pas faire un truncate table ?
Sauf erreur de ma part, la commande execute immediate fait un commit implicite.Non, elles ne sont pas identiques puisque dans un cas tu commit dans l'autre non.
C'est pas moi qui dirais le contraireNB : si tu delete toute ta table pourquoi ne pas faire un truncate table ?![]()
It isn't that they can't see the solution, it's that they can't see the problem.
Mes Articles et Traductions (Microstrategy, Css et Javascript)
Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.
non, je ne crois pas que le execute immédiate fasse un commit implicite...
le fait est que le execute immediate est souvent employé dans du PL/SQL pour faire du DDL qui, LUI, fait du commit implicite !
sinon, pour le truncate ce n'est pas toujours possible en fonction des contraintes sur la table.
de plus le truncate est dangereux puisqu'il ne peux pas s'annuler avec un rollback... donc oublie le truncate dans une PL/SQL où tu souhaite gèrer l'intégralité d'une transaction.
Et enfin, pire que tout, le truncate est une opération DDL, et donc va COMMITER les opérations précédentes, que tu le veuille ou non !!!!
Merci pour cette précision, j'ai appris un truc là !le fait est que le execute immediate est souvent employé dans du PL/SQL pour faire du DDL qui, LUI, fait du commit implicite !![]()
It isn't that they can't see the solution, it's that they can't see the problem.
Mes Articles et Traductions (Microstrategy, Css et Javascript)
Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.
De manière générale je suis d'accord avec toi, mais comme on ne sait pas pourquoi ni comment pegase06 utilise son delete, le truncate peut-être une solution intéressante, d'autant plus qu'il fait un commit juste après son delete. C'est pourquoi je posais la question.Envoyé par Yorglaa
Partager