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

Oracle Discussion :

[9i] Oracle & XML [FAQ]


Sujet :

Oracle

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [9i] Oracle & XML
    Bonjour à tous,

    Commençons par le début : je travail sur la version 9i d'Oracle sous UNIX,
    voilà pour ce qui est du support de travail...

    Maintenant en ce qui concerne la base de données elles-mêmes :
    Cette base de données contient environ 17 millions d'enregistrement grandissant chaque semaine de 10.000 nouveaux enregistrement.

    Les personnes ayant conçus cette base, on décidés de faire de l'archivage de données sur un fichier XML qui est compressé dans un attribut.
    (ce qui me perturbe énormément car pour ma part, je ne travail pas sur une base de donnée relationnel. En effet, mes requêtes se déroule sur une table et un attribut qui contient ce dit fichier XML).
    Bien entendu, il est impossible de modifier cette base.

    Comme vous pouvez vous en doutez, le temps de requête est extrêment long pour obtenir la moindre information.
    J'utilise pour mes requêtes les opérateurs tels que HASPATH, INPATH, WITHIN.

    Alors ma question : Est-il possible de faire un travail d'optimisation sur la base de donnée ? Sur mes requêtes ?
    Ne connaissant pas toutes les possibilités offerte par Oracle sur les fichiers XML, pouvez-vous me donnez plus d'informations sur les opérateurs ?

    Petit exemple de requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT num_identifiant FROM composant_notice WHERE CONTAINS (not_xml, 'HASPATH (//xxx/@xxx="abc")')>0
    Pour vous donner une idée du temps de requête : je prends pour exemple de me trouver la langue francaise dans les notices, il faut environ 30 minutes pour me sortir uniquement les identifiants (serie de 10 chiffres aux maximun) ce qui représente environ 800.000 notices !!!

    Merci d'avance

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous,

    Je me permets de réécrire de peur que mon message tombe aux oubliettes.

    Une personne a-t-elle la moindre idée pour m’aider ?

    Je vous en remercie d’avance

  3. #3
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Salut à toi,

    Je me lance, bien que je n'ai malheureusement pas de retour d'expériences sur une telle volumétrie

    1/ ta colonne est apparemment de type CLOB, est-elle indexée avec un index de type context. Si non, alors crée déjà cet index.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE INDEX IDX_XML ON TABLE_XML (MA_COLONNE_XML)
    INDEXTYPE IS CTXSYS.CONTEXT
    PARAMETERS ('DATASTORE CTXSYS.DIRECT_DATASTORE SECTION GROUP CTXSYS.PATH_SECTION_GROUP');
    2/ pour ma part, je n'utilises pas les CLOBS mais le type XMLType.

    Quelques exemples de mes requétes XPath :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    --interrogeons la table pour AuditeurNOM : extract texte
    SELECT
    dx.DOCNS_DOCS.extract('/AuditeurDEF/AuditeurNOM/text()').getStringVal() "NOM"
    FROM XML_NON_STRUCTURE dx;
     
    --interrogeons la table pour AuditeurNOM : extract noeud
    SELECT
    dx.DOCNS_DOCS.extract('/AuditeurDEF[AuditeurNOM="LENGLET"]').getStringVal() "NOM"
    FROM XML_NON_STRUCTURE dx;
    à mon avis, il serait intéressant que tu explores cette piste. Le type d'interrogation que tu utilises s'appuie sur Oracle Text, et je pense que c'est vraiment pas la meilleure solution pour une telle volumétrie. Le langage normalisé est Xpath (en attendant XQL)

    3/ il existe depuis la 9i les schémas XSD qui te permettent de stocker des documents XML de manière structurée. Les interrogations peuvent être réalisées en Xpath, ce qui devrait améliorer considérablement les choses, mais nécessite certainement de revoir ton architecture (installation et administration du référentiel XDB).

    4/ il existe des solutions en java de parsing (SAX et DOM) que tu devrais également explorer.

    Pour terminer, je dirai (sans vouloir te décourager) que tu t'attaques à une grosse montagne. j'ai passé plusieurs mois à travailler sur le sujet il y a 2 ans, et j'ai vraiment galéré. Le noyau 9i commence à proposer des solutions de stockage XML (et d'interrogation) mais de là à dire que Oracle 9i est une base de données XML, je ne pense pas pour l'instant.

    Il te faut te documenter sur le sujet.

    Sorry de ne pas t'aider plus.

    @
    PpPool

  4. #4
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    Merci PpPool pour toutes ces infos.

    Sinon, pour info, Oracle est en train de sortir la release 2 de la 10g. Et une des nouveautés forte intéressante est le support de Xquery.

    Voir :

    http://www.developpez.net/forums/vie...er=asc&start=0

  5. #5
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par rouardg
    Bonjour,

    Merci PpPool pour toutes ces infos.

    Sinon, pour info, Oracle est en train de sortir la release 2 de la 10g. Et une des nouveautés forte intéressante est le support de Xquery.

    Voir :

    http://www.developpez.net/forums/vie...er=asc&start=0


    salut Rouardg,

    merci également pour ces infos

    PpPool

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour toutes ces précisions,

    pour ce qui est des requêtes Xpath, j'ai déjà explorer cette piste,
    mais le temps de réponse est quasiment identique.

    Par contre, je vais me pencher sur les schémas XSD...
    puis sur la solution JAVA

    Encore une fois cette communauté de développeur est superbe

Discussions similaires

  1. oracle et xml
    Par r83 dans le forum Oracle
    Réponses: 24
    Dernier message: 19/10/2009, 23h37
  2. configuration de oracle-ds.xml
    Par tresorkoul dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 30/09/2009, 13h04
  3. Erreur oracle installing xml parser
    Par slash_cat dans le forum Installation
    Réponses: 0
    Dernier message: 04/12/2008, 17h17
  4. oracle et XML
    Par Smix007 dans le forum Outils
    Réponses: 0
    Dernier message: 10/03/2008, 10h25
  5. [JBOSS] Sécurité oracle-ds.xml
    Par jeuneloup dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 02/08/2007, 15h53

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