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 :
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 !!!
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
Merci d'avance
Partager