Este nodo permite aplicar los predicados con operaciones AND a varios nodos a fin de reducir a un mínimo los accesos a tablas subyacentes.
Nombre de nodo: XANDOR
Representa: la operación AND de índice a través de datos XML de los resultados de varias exploraciones de índice, que se utilizan para la evaluación de predicados complejos a partir de una consulta individual.
Para poder utilizar el nodo XANDOR, deben cumplirse las condiciones siguientes:
- Sólo se utilizan los predicados de igualdad.
- No existen comodines en la vía de acceso de búsqueda de índices.
- Todos los predicados se utilizan en la misma columna XML.
Si no se cumple alguna de las condiciones, se utilizará en su lugar, el nodo IXAND.
Un plan de acceso con varias exploraciones de índice con XANDOR a través de datos XML tal como se muestra en la herramienta db2exfmt puede ser parecido a éste:
Rows
RETURN ( 1)
Cost
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
Cada nodo XISCAN realizará una exploración de índice y alimentará el nodo XANDOR con los ID de nodo XML que se cualifican.
aplicará los predicados AND y OR y devolverá los nodos XML que satisfacen el patrón XML de la consulta.
Sugerencias relativas al rendimiento: - Conforme pasa el tiempo, las actualizaciones de la base de datos pueden producir la fragmentación de un índice, lo que dará lugar a más páginas de índice de las necesarias. Esto se puede corregir, descartando y volviendo a crear el índice o bien reorganizándolo.
- Si las estadísticas no están al día, actualícelas mediante el mandato RUNSTATS.
- En general, las exploraciones de índices son más efectivas cuando sólo se cualifican unas cuantas filas.
Para calcular el número de filas cualificadas, el optimizador utiliza las estadísticas que están disponibles para las columnas referenciadas en los predicados.
Si algunos valores aparecen con más frecuencia que otros, es importante solicitar estadísticas de distribución utilizando la cláusula WITH DISTRIBUTION con el mandato RUNSTATS.
Utilizando las estadísticas de distribución no uniformes, el optimizador puede distinguir entre los valores que ocurren con mucha y con poca frecuencia.