Ce noeud permet aux prédicats ajoutés d'être appliqués à plusieurs
index afin de réduire au maximum les accès aux tables sous-jacentes.
Nom du noeud : XANDOR
Représente : L'index
des données XML. Ajout des résultats de plusieurs analyses d'index
utilisés pour évaluer les prédicats complexes d'une requête unique.
Pour
que le noeud XANDOR soit utilisé, les conditions suivantes doivent
être remplies :
- Seuls des prédicats d'égalité sont utilisés.
- Il n'y a pas
de caractère générique dans le chemin de recherche de l'index.
- Tous les prédicats
sont utilisés dans la même colonne XML.
Si l'une de ces conditions
n'est pas remplie, c'est le noeud IXAND
qui est utilisé.
Un plan d'accès contenant plusieurs analyses d'index XANDORed de
données XML, comme l'indique l'outil db2exfmt, peut se présenter
de cette manière :
Lignes
RETURN
( 1)
Coût
I/O
|
0.00915933
NLJOIN
( 2)
985.789
98.9779
/--+--\
2.96215 0.00309213
FETCH XSCAN
( 3) ( 11)
340.113 217.976
19 27
/---+---\
2.96215 210000
RIDSCN TABLE: DB2XML
( 4) TPCHX
332.008
18
|
2.96215
SORT
( 5)
331.957
18
|
2.96215
XANDOR
( 6)
331.784
18
+----------------+--------+-------+----------------+
355.62 6996.81 105000 105000
XISCAN XISCAN XISCAN XISCAN
( 7) ( 8) ( 9) ( 10)
165.892 3017.54 1.6473e+06 851554
9 81 27768 14898
| | | |
210000 210000 210000 210000
XMLIN: DB2XML XMLIN: DB2XML XMLIN: DB2XML XMLIN: DB2XML
TPCHX_IDX TPCHX_IDX TPCHX_IDX TPCHX_IDX
Chaque
noeud XISCAN effectue une analyse d'index et fournit au noeud XANDOR les ID
de noeud XML de qualification. Le noeud XANDOR applique les prédicats AND
et OR et retourne le noeuds XML qui sont conformes au modèle XML
de la requête.
Suggestions liées aux performances : - Dans le temps, les mises à jour de bases de données peuvent entraîner la fragmentation d'un index,
ce qui donne plus de pages d'index que nécessaire. Ceci peut être corrigé en
supprimant et en recréant l'index ou en le réorganisant.
- Si les statistiques ne sont pas
à jour, mettez-les à jour à l'aide de la commande RUNSTATS.
- En général, les analyses d'index sont les plus efficaces lorsque
seules quelques lignes sont
qualifiées. Pour évaluer le nombre de lignes de qualification, l'optimiseur
utilise les statistiques disponibles pour les colonnes référencées
dans les prédicats. Si certaines valeurs apparaissent plus fréquemment que d'autres, il est
important de demander des statistiques de distribution en utilisant la clause WITH
DISTRIBUTION
pour la commande RUNSTATS. Grâce
aux statistiques de distribution non uniformes, l'optimiseur peut faire la distinction entre
les valeurs apparaissant fréquemment et celles apparaissant rarement.