Chapter 3 Guide de référence du fichier de ressource de SGBD
Lors du reverse engineering, les options physiques sont concaténées dans une seule instruction de chaîne. Toutefois, lorsque les tables système d'une base de données sont partitionnées (comme dans Oracle) ou fragmentées (comme dans Informix), les partitions/fragments partagent les mêmes attributs logiques, mais leurs propriétés physiques, telles que les spécifications de stockage, sont conservées dans chaque partition/fragment de la base de données. Les colonnes dans les partitions/fragments ont un type de données (LONG) qui permet le stockage de grandes quantités d'informations binaires non structurées.
Les options physiques dans ces colonnes ne pouvant pas être concaténées dans une instruction de chaîne lors du reverse engineering, SqlOptsQuery
(catégorie Tables dans le SGBD) contient un appel à une requête définie par l'utilisateur qui va évaluer ces options physiques.
Dans Informix SQL 9, SqlOptsQuery
est fourni par défaut avec les requêtes et variables utilisateur suivantes (le code suivant est un sous-ensemble de SqlOptsQuery
) :
select t.owner, t.tabname, '%SqlFragQuery.FragSprt'||f.evalpos||'% %FragExpr'||f.evalpos||'% in %FragDbsp'||f.evalpos||'% ', f.evalpos from informix.systables t, informix.sysfragments f where t.partnum = 0 and t.tabid=f.tabid [ and t.owner = '%SCHEMA%'] [ and t.tabname='%TABLE%']
A l'issue de l'exécution de SqlOptsQuery
, la requête définie par l'utilisateur SqlFragQuery
est exécutée pour évaluer FragDbsp
n, FragExpr
n, et FragSprt
n. n représente evalpos
qui définit la position du fragment dans la liste de fragmentation. n permet d'affecter des noms uniques aux variables, quel que soit le nombre de fragments définis dans la table.
FragDbsp
n, FragExpr
n, et FragSprt
n sont des variables utilisateur qui seront évaluées pour récupérer des informations concernant les options physiques des fragments dans la base de données :
Variable utilisateur | Options physiques |
---|---|
FragDbsp n | Emplacement du fragment pour le fragment n |
FragExpr n | Expression du fragment pour le fragment n |
FragSprt n | Séparateur du fragment pour le fragment n |
SqlFragQuery
est défini comme suit :
{A, a(E="expression", R="round robin", H="hash"), B, b, C, c, D, d(0="", *=",")} select 'FragDbsp'||f.evalpos, f.dbspace, 'FragExpr'||f.evalpos, f.exprtext, 'FragSprt'||f.evalpos, f.evalpos from informix.systables t, informix.sysfragments f where t.partnum = 0 and f.fragtype='T' and t.tabid=f.tabid [ and t.owner = '%SCHEMA%'] [ and t.tabname='%TABLE%']
L'en-tête de SqlFragQuery
contient les noms de variable suivants.
{A, a(E="expression", R="round robin", H="hash"), B, b, C, c, D, d(0="", *=",")}
Seules les règles de conversion définies entre crochets seront utilisées lors de la concaténation de chaîne : "FragSprt0", qui contient 0 (f.evalpos), sera remplacé par " ", et "FragSprt1", qui contient 1, sera remplacé par ","
SqlFragQuery
génère un jeu de résultats numérotés contenant autant de paires de nom de variable utilisateur (sans %) et de valeurs de variable que nécessaire, s'il existe de nombreuses variables à évaluer.
Les noms de variable définies par l'utilisateur sont remplacés par leur valeur dans l'instruction de chaîne pour les options physiques des fragments dans la base de données.
Copyright (C) 2008. Sybase Inc. All rights reserved. |
![]() |