Une petite polémique avait débuté avec le hint APPEND et Oracle 11.1. En effet Oracle avait alors modifié son fonctionnement pour supporter le hint avec la clause VALUES d’un ordre INSERT. Depuis, ils sont, sans doute, revenus en arrière. Personnellement je trouvais l’idée très séduisante et j’ai d’ailleurs écrit plusieurs articles à ce sujet puisque ça ouvrait la porte à l’écriture de programmes Pro*C, OCI ou PL/SQL qui pouvaient intégrer des données de manière massive, sans logs et sans insert as select ni tables externes.
D’autres, sans doute plus pragmatiques, mettaient en avant que si un programme fonctionnait en 10g et qu’un développeur avait par mégarde ajouté ce hint à un insert … values, la table serait lockée en mode exclusif le temps de la transaction associée et le High Water Mark déplacé, même pour une ligne. Les conséquences d’une mauvaise utilisation pouvaient donc être catastrophiques. J’avoue que, dans une première approche au moins, punir les gens qui utilisent des hints sans savoir pourquoi ne faisait qu’ajouter à mon plaisir… Enfin, on peut imaginer des situations assez compliquées pour migrer en 11g. Malheureux ceux qui n’auraient pas testé !
Oracle 11.2 coupe donc la poire en 2