IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DB2 Discussion :

Aide sur les view


Sujet :

DB2

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 135
    Points : 46
    Points
    46
    Par défaut Aide sur les view
    Bonjour,

    Je travaille actuellement avec db2 v8 sous un AIX 5, nous avons créer une table qui contient maintenant plus de 8 millions de lignes. Ce que l'on voudrait mettre en place c'est un système qui permettrait de requêter pour extraire des données de l'année 2007,2008, etc ... pour éviter de locker la table A (en gros pour les comptas).

    D'après ce que j'ai pu lire ce qui pourrait correspondre à mes besoins c'est la création de vue. Mais je dois avouer que j'ai un peu de mal à comprendre le système de vue.

    D'après ce que j'ai pu lire, c'est que une vue est une représentation virtuel de la table donc pas de possibilité de création d'index, de tablespaces spécifiques, de contraintes.
    Mais la question que je me pose c'est que :
    Est ce que ce système m'empêcherait de locker ma table A, est ce que ce système virtuel utilise les indexes physiques (en gros est ce que je gagne en perf et en gestion de transaction )?

    Est ce qu'il y aurait quelqu'un pourrait m'éclairer dessus ?

    Je vous remercie d'avance.

  2. #2
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Juin 2008
    Messages : 154
    Points : 225
    Points
    225
    Par défaut
    Bonjour,

    Une vue, c'est purement logique, pas physique. Une vue est en fait le résultat d'une requête exécutée sur une ou plusieurs tables. L'ordre de création d'une vue, c'est d'ailleurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE VIEW TOTO (COL1, COL2, ...) AS
    SELECT COL1, COL2, ...
    FROM...
    WHERE éventuel...
    ...
    Ensuite, dans un programme, tu te sers de la vue en écrivant directement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT COL1, COL2, ...
    FROM TOTO
    WHERE éventuel
    ...
    Chaque fois que tu te sers d'une vue, DB2 superpose la requête de création de la vue plus ta propre requête. Donc, la table concernée est lue à chaque utilisation, les verrous sur la table sont donc bien posés lors de toute utilisation.

    En conclusion, la vue n'est pas la solution que tu recherches.

    Les autres solutions possibles en sachant que je connais bien DB2 sous ZOS. Pour AIX, je ne sais pas si ces solutions sont d'actualité.
    - Partitionner la table sur l'année. Ensuite, si tu écris WHERE ANNEE = 2007, seule la partition contenant l'année 2007 sera verrouillée.
    - Dupliquer tes données en créant par exemple autant de Materialized Query Table (MQT) que d'années. Une MQT, pour résumer, c'est l'équivalent d'une vue, mais le résultat est stockée physiquement sur une autre table, donc dans un espace physique indépendant, contrairement à la vue qui est, je le répète, purement logique. Les verrous seront donc posés sur la MQT et non sur la table de base. Reste à rafraichir les MQT au moment opportun. Si tu veux plus d'infos sur ces MQT, n'hésite pas.
    - Jouer éventuellement sur les index, mais un index positionné sur l'année sera très peu discriminant et risque de te poser plus de problèmes qu'autres choses.

    A ta disposition.

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Je relance ce topic pour savoir si éventuellement on peut créer des MQT à partir d'autres vues matérialisées.

    Merci d'avance.

  4. #4
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Juin 2008
    Messages : 154
    Points : 225
    Points
    225
    Par défaut
    Si la question est : dans le SELECT de la création de la MQT, peut-on référencer une autre MQT, la réponse est non : ni MQT, ni TTG. Par contre, on peut référencer une table ou une vue standard sans souci.

Discussions similaires

  1. besoin d'aide sur les ORB
    Par floorfille dans le forum CORBA
    Réponses: 4
    Dernier message: 24/08/2004, 15h43
  2. Aide sur les groupes (ADO)
    Par portu dans le forum QuickReport
    Réponses: 3
    Dernier message: 18/08/2004, 16h13
  3. Filemaker ... besoin d'aide sur les Plugin
    Par joange dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 22/04/2004, 10h16
  4. Petite aide sur les triggers ?
    Par krimson dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/04/2004, 16h28
  5. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo