Bravo pour cet article qui décortique le sujet de manière approfondie, avec une mise en forme rigoureuse, et sans tomber dans le jargon franglais !
Quelques commentaires néanmoins (sinon on ne me reconnaîtrait pas, hein ! )
La formulation suivante est maladroite, pour ne pas dire fausse, puisque justement vous vous attachez à démontrer que cette valeur n'est pas stockée en table.
"la requête montre que la totalité des colonnes C_DDL a été mise à jour avec sa valeur par défaut 42."
On aurait pu relever que la taille de la table n'a pas augmenté quand on a ajouté la colonne avec sa valeur nulle.
Par ailleurs, je trouve que la démonstration concernant la présence physique de la valeur par défaut dans l'index est un peu détournée, et pas spécialement probante.
Pour ma part, j'aurais plutôt insisté sur sa durée de création, mais surtout sur sa taille. Un index de 47 Mo doit bien stocker quelque chose de réel.
Mais à vrai dire, un vidage de bloc d'index aurait été encore plus convaincant.
J'ai relevé quelques bricoles sur la forme :
* à plusieurs reprises, vous parlez de millisecondes alors qu'il s'agit de centièmes de seconde
* en fin de section 2, une coquille : "ne vas pas" au lieu de "ne va pas"
* en fin de section 3.2 "très confiant de..." n'est guère français
* en fin de section 5 "sensé" au lieu de "censé"
Les plans d'exécution V11 comportent parfois des incohérences au niveau des temps d'exécution A-Time, par exemple à la section 3.2.
En effet, on a le parcours d'index qui se fait en 75 centièmes, pour un temps total de la requête de 47 centièmes.
Au passage, je suis tombé sur l'erreur suivante en créant la table de démonstration.
ORA-30009: Not enough memory for CONNECT BY operation
Ce que j'ai contourné par le bricolage suivant :
alter session set "_SMM_MAX_SIZE"=200000000;
Partager