Fichiers XML utilisant le schéma Optim Query Workload Tuner

Vous pouvez créer un fichier XML afin de créer une charge de travail personnalisée à partir de laquelle vous pouvez importer ou capturer des instructions SQL.

La spécification du fichier XML définissant une charge de travail inclut les éléments suivants :

workload
L'élément workload est l'élément racine, ce qui signifie qu'un fichier valide ne dispose que d'un seul élément workload.
source
L'élément source est l'enfant de workload. Un élément workload peut avoir plusieurs éléments source. L'attribut name contient un nom unique pour chaque élément source. Si aucun élément source n'est inclus, on considère que la charge de travail dispose d'une source texte.
source_detail
L'élément source_detail est un enfant de l'élément source.
statement
L'élément statement est un enfant de l'élément source. Chaque élément statement représente une instruction SQL dans la charge de travail. Chaque élément source peut contenir plusieurs éléments statement.
statement_text
L'élément statement_text, qui contient le texte de l'instruction SQL, est un enfant de l'élément statement. Un élément statement ne peut pas contenir plus d'un élément statement_text. L'attribut qualifier indique le qualificatif de l'instruction. Si l'attribut qualifier n'est pas spécifié, l'attribut qualifier spécifié dans l'élément source_detail est alors utilisé. Si cet attribut n'est pas spécifié à son tour, l'ID utilisateur en cours sera alors utilisé comme qualificatif de l'instruction.

Certains symboles faisant habituellement partie du texte d'une instruction SQL sont des caractères incorrects au format XML. Vous devez les remplacer par les entités correspondantes affichées dans le tableau ci-dessous.

Tableau 1. Entités XML des symboles communs figurant dans les instructions SQL
Symbole à remplacer Référence d'entité à utiliser
< &lt;
> &gt;
' &apos;
" &quot
& &amp;
statement_runtime
L'élément statement_runtime est un enfant de l'élément statement. Un élément statement ne peut pas contenir plus d'un élément statement_runtime. Un élément statement_runtime peut inclure l'un des attributs suivants :
stat_exec
Nombre de fois que l'instruction a été exécutée.
stat_cpu
Temps UC accumulé en secondes.
stat_elap
Temps écoulé accumulé en secondes.

L'exemple de fichier XML suivant crée une charge de travail contenant trois instructions 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>

Commentaires