Archivos XML que utilizan el esquema de Optim Query Workload Tuner

Puede crear un archivo XML para crear una carga de trabajo personalizada que importar o de la que capturar sentencias de SQL.

La especificación del archivo XML que define una carga de trabajo incluye los elementos siguientes:

carga de trabajo
El elemento workload (carga de trabajo) es el raíz, lo que significa que un archivo válido sólo tiene un elemento workload válido.
origen
El elemento origen es hijo del elemento carga de trabajo. Una carga de trabajo puede tener más de un elemento origen. El atributo de nombre contiene un nombre exclusivo para cada elemento origen. Si no se incluye ningún elemento origen, se considera que la carga de trabajo tiene un origen de texto.
source_detail
El elemento source_detail (detalle de origen) es hijo del elemento origen.
statement
El elemento statement es hijo del elemento source. Cada elemento statement representa una sentencia de SQL de la carga de trabajo. Cada elemento source puede contener más de un elemento statement.
statement_text
El elemento statement_text (texto de sentencia), que contiene el texto SQL de la sentencia, es hijo del elemento statement. Un elemento statement no puede contener más de un elemento statement_text. El atributo qualifier (calificador) especifica el calificador de la sentencia. Si no se especifica el atributo qualifier, se utiliza el atributo qualifier especificado en el elemento source_detail. Si este atributo tampoco se ha especificado, se utilizará el ID del usuario actual como calificador de sentencia.

Ciertos símbolos que habitualmente forman parte del texto de una sentencia de SQL son caracteres no válidos en XML. Deben sustituirse por las entidades correspondientes que se muestran en la tabla siguiente.

Tabla 1. entidades XML para símbolos comunes en sentencias de SQL
Símbolo que debe sustituirse Referencia a entidad que debe utilizarse
< &lt;
> &gt;
' &apos;
" &quot
& &amp;
statement_runtime
El elemento statement_runtime (ejecución de sentencia) es hijo del elemento statement. Un elemento statement no puede contener más de un elemento statement_runtime. Un elemento statement_runtime puede incluir cualquiera de los atributos siguientes:
stat_exec
Número de veces que se ha ejecutado la sentencia.
stat_cpu
Tiempo de CPU acumulado, en segundos.
stat_elap
Tiempo transcurrido acumulado, en segundos.

El siguiente archivo XML de ejemplo crea una carga de trabajo que contiene tres sentencias de SQL.

<workload desc="test workload">
<source name="DB01 2007/11/06 - Source0">
<source_detail condition="QUALIFIER" operator="=" value="SYSADM"/> 
<statement>
<statement_text qualifier="SYSIBM">SELECT * FROM SYSTABLES WHERE NAME 
 = &apos;PART&apos;
</statement_text>
<statement_runtime stat_exec="2" stat_cpu="0.1" stat_elap="0.2"/>
</statement>
<statement>
<statement_text>SELECT
SUM(PS_SUPPLYCOST) * AVG(P_SIZE * PS_AVAILQTY / 2) AS SupplyRatio_Expr_Operators,
O_ORDERSTATUS || O_ORDERPRIORITY AS Key_Expr_CONCAT
FROM PART, ORDER, PARTSUPP
WHERE O_TOTALPRICE BETWEEN (2 * (SELECT MIN(P_RETAILPRICE) FROM PART))
                     AND (0.5 * (SELECT MAX(P_RETAILPRICE) FROM PART))
AND O_SHIPPRIORITY IN (1, 2, 3)
AND O_CLERK LIKE &apos;clerk&amp;888%&apos;
AND O_SHIPPRIORITY - 1 &gt;= 3
AND O_SHIPPRIORITY - 1 &gt;= 1
AND P_PARTKEY = PS_PARTKEY
GROUP BY PS_SUPPLYCOST, P_SIZE, PS_AVAILQTY, O_ORDERSTATUS, O_ORDERPRIORITY
ORDER BY PS_SUPPLYCOST, P_SIZE, PS_AVAILQTY, O_ORDERSTATUS, O_ORDERPRIORITY
</statement_text>
<statement_runtime stat_exec="5" stat_cpu="0.2" stat_elap="0.4"/>
</statement>
<statement>
<statement_text>SELECT
XML2CLOB(XMLELEMENT(NAME &quot;LITMLINEITEM&quot;,
         XMLAGG(XMLELEMENT(NAME &quot;bo:lineItem&quot;,
         XMLNAMESPACES(&apos;urn:bo&apos; AS &quot;bo&quot;), LINEITEM.L_ORDERKEY)
         ORDER BY LINEITEM.L_ORDERKEY)) ) AS &quot;xmlLITMLINEITEM&quot;
FROM LINEITEM
</statement_text>
</statement>
</source>
</workload>

Comentarios