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

SQL Oracle Discussion :

Recherche d'un sous-ensemble / Performances


Sujet :

SQL Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Recherche d'un sous-ensemble / Performances
    Bonjour,

    J'ai une table A qui contient une colonne X en XML_TYPE.
    J'ai une table B qui contient également une colonne X en XML_TYPE.

    La table A : 600 000 rows
    La table B : 8 000 000 rows

    Je dois chercher pour tous les éléments de A tous ceux déjà présent dans B, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT
       *
    FROM
       A,B
    WHERE
       extractValue(A.X,'/Noeud1') = extractValue(B.X,'/Noeud1')
       AND extractValue(A.X,'/Noeud2') = extractValue(B.X,'/Noeud2')
    ...
       AND extractValue(A.X,'/Noeud7') = extractValue(B.X,'/Noeud7')

    Que feriez-vous pour optimiser les performances de la requête ?
    (j'ai essayé de créer des index sur les xmltype mais cela reste coûteux)

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Le mieux je pense ça reste l'ensembliste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    select extractValue(X,'/Noeud1') as n1
         , extractValue(X,'/Noeud2') as n2
         , extractValue(X,'/Noeud3') as n3
         , extractValue(X,'/Noeud4') as n4
         , extractValue(X,'/Noeud5') as n5
         , extractValue(X,'/Noeud6') as n6
         , extractValue(X,'/Noeud7') as n7
      from A
    intersect
    select extractValue(X,'/Noeud1') as n1
         , extractValue(X,'/Noeud2') as n2
         , extractValue(X,'/Noeud3') as n3
         , extractValue(X,'/Noeud4') as n4
         , extractValue(X,'/Noeud5') as n5
         , extractValue(X,'/Noeud6') as n6
         , extractValue(X,'/Noeud7') as n7
      from B;

Discussions similaires

  1. méthode pour recherche sous-ensemble
    Par laureat dans le forum Mathématiques
    Réponses: 14
    Dernier message: 08/04/2012, 02h27
  2. sous ensemble d'une liste
    Par adel25 dans le forum C++
    Réponses: 1
    Dernier message: 23/08/2005, 15h50
  3. [DBGrid] Affichage d'un sous-ensemble de données
    Par Jean-Jacques Engels dans le forum Bases de données
    Réponses: 3
    Dernier message: 02/09/2004, 16h31
  4. [langage] recherche directory et sous directory
    Par Ludo167 dans le forum Langage
    Réponses: 8
    Dernier message: 13/07/2004, 09h38
  5. Sous-ensembles de tuples
    Par HPJ dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/10/2003, 16h24

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