19 novembre 2017

Oracle peut utiliser un index avec LIKE '%texte%' : idées reçues sur les fonctions et les index

IntroductionUne idée courante sous Oracle est qu'une fonction utilisée sur un champ indexé empêche l'utilisation de cet index. Nous allons prouver que c'est plus complexe que cela et que même avec le fameux LIKE '%texte%' ou la sélection de 100% des données, Oracle peut utiliser un index. Il faut néanmoins distinguer comment Oracle traite les fonctions de groupes telles que MIN, MAX, COUNT des fonctions comme SUBSTR, UPPER. Il faut aussi tenir compte si le SELECT se fait uniquement sur la colonne indexée ou non, que la fonction est... [Lire la suite]
Posté par David DBA à 18:03 - - Commentaires [0] - Permalien [#]
Tags :

08 juin 2017

Plan d'exécution : ce n'est pas la ligne la plus indentée qui est exécutée en premier

IntroductionUn plan d'exécution Oracle peut rapidement devenir incompréhensible dès qu'il comporte des dizaines de lignes. On peut s'aider de Google ou de livres d'administration Oracle pour le décrypter mais, curieusement, même les DBA les plus connus ne sont pas d'accord sur l'ordre dans lequel Oracle exécute les différentes opérations de ce plan! Pour rappel, il est fondamental de comprendre l'exécution de ce plan pour tuner un ordre SQL! Si on ne sait pas quelle est la première opération exécutée, il est impossible de mettre en... [Lire la suite]
Posté par David DBA à 21:33 - - Commentaires [0] - Permalien [#]
Tags : ,