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

Langage SQL Discussion :

Les arbres algébriques


Sujet :

Langage SQL

  1. #1
    Membre très actif Avatar de Glauben
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 115
    Par défaut Les arbres algébriques
    Bonjour,

    Une requête peut avoir plusieurs arbres algébriques. Parmis ces arbres, il existe un qui est optimal.

    Comment implémenter les arbres algébriques et comment choisir l'arbre optimal ?

    Merci.

  2. #2
    Membre émérite Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Par défaut
    Bonjour,

    Ce que vous appelez un "arbre algébrique" est simplement une représentation graphique d'une opération algébrique ?

    Citation Envoyé par Glauben Voir le message
    Comment implémenter les arbres algébriques et comment choisir l'arbre optimal ?
    Qu'est-ce que vous entendez par "implémenter" les arbres algébriques ?

    Qu'entendez-vous par "optimal" ?
    Vous ne faites certainement pas référence aux éventuelles performances d'exécution, puisqu'elle ne concernent pas le modèle relationnel (et son algèbre) mais l'implémentation (le SGBDR).
    Si je devais choisir entre deux arbres produisant le même résultats, a priori je choisirai celui qui fait intervenir le moins d'opérateurs.

  3. #3
    Membre très actif Avatar de Glauben
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 115
    Par défaut
    Bonjour,

    Citation Envoyé par Oishiiii Voir le message
    Ce que vous appelez un "arbre algébrique" est simplement une représentation graphique d'une opération algébrique ?
    L'arbre algébrique est une représentation graphique du plan d'exécution d'une requête SQL. Tous les plan d'exécution possible pour un requête donnée.

    Citation Envoyé par Oishiiii Voir le message
    Qu'est-ce que vous entendez par "implémenter" les arbres algébriques ?
    Implémenter c-à-d construire un logiciel qui détecte tous les arbres algébriques d'une requête .

    Je cherche la structure de données adéquat pour "représenter" les arbres algébriques d'une requête.

    Citation Envoyé par Oishiiii Voir le message
    Qu'entendez-vous par "optimal" ?
    Vous ne faites certainement pas référence aux éventuelles performances d'exécution, puisqu'elle ne concernent pas le modèle relationnel (et son algèbre) mais l'implémentation (le SGBDR).
    Si je devais choisir entre deux arbres produisant le même résultats, a priori je choisirai celui qui fait intervenir le moins d'opérateurs.
    Je choisis l'arbre qui donne un temps de réponse court par rapport aux autres arbres algébriques.

    Ma question: Est ce que c'est possible de construire un logiciel qui détecte les arbres algébriques en utilisant JAVA et Oracle par exemple !!!!!!!!!
    si oui , comment faire ?

    Vous pouvez trouver ci-joint un exemple d'une arbre algébrique.
    Images attachées Images attachées  

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut
    Bonjour,
    avez vous trouvé la structure convenable pour les plans de requêtes ?

    Merci ^^

  5. #5
    Membre très actif Avatar de Glauben
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 115
    Par défaut
    Citation Envoyé par Sun22 Voir le message
    Bonjour,
    avez vous trouvez la structure convenable pour les plans de requêtes?

    Merci ^^
    Bonjour,

    Pas encore

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Glauben Voir le message
    Je choisis l'arbre qui donne un temps de réponse court par rapport aux autres arbres algébriques.
    mais quels sont vos critères pour calculer un temps de réponse ?
    Dans les SGBDR comme Oracle ou SQL Server, les critères sont :
    1) la nature de l'opération et donc sa durée unitaire
    2) l'estimation de cardinalité
    3) le calcul de volumétrie résultant, basé sur la longueur de ligne moyenne
    4) la possibilité d'utiliser le parallélisme.
    Cela est du au fait que les SGBDR stockent des histogrammes statistiques sur les données des colonnes...

    En effet, entre deux arbres de plan de requêtes, ce n'est pas toujours celui qui a le moins d'opérations qui sera le plus rapide, ni celui dont le coût global est minimal qui sera finalement retenu.
    Par exemple avec le parallélisme, il n'est pas rare d'avoir un temps global d'exécution plus court, mais une durée CPU plus longue qu'avec une requête mono threadée... !
    En particulier les opérations suivantes peuvent être parallélisées :
    • SCAN
    • GROUP BY
    • ORDER BY
    • et tous les calculs d'agrégats : COUNT, MAX, MIN, SUM, AVG...


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre très actif Avatar de Glauben
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 115
    Par défaut


    Merci SQLpro, est ce que vous avez un document qui explique comment calculer le coût d'une requête SQL ?.

  8. #8
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut !

    C'est une lourde tâche, et ça dépend pas mal du SGBD que tu choisis.

    Exemple pour Oracle :
    http://download.oracle.com/docs/cd/B...3/optimops.htm

    Une fois que tu auras une bonne idée des différentes problématiques, il faudra que tu limites ton périmètre, car recoder un CBO (cost based optimizer), ça pourrait te prendre plusieurs centaines d'années

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Glauben Voir le message
    Merci SQLpro, est ce que vous avez un document qui explique comment calculer le coût d'une requête SQL ?.
    C'est tout a fait spécifique à chaque SGBDR....

    Quelques éléments théoriques :
    http://masters.donntu.edu.ua/2007/fv...processing.pdf (synthèse sur l'optimiseur de SQL Server)
    http://infolab.stanford.edu/~hyunjun.../ioannidis.pdf
    http://www.serc.iisc.ernet.in/gradua...es/atreyee.pdf (picasso et postGreSQL)
    http://www.google.fr/url?sa=t&source...S8oU8g&cad=rja
    http://research.ict.ru.ac.za/g01m1261/CSHnsThesis.pdf (comparaisons optimiseur MySQL et SQL Server)
    http://research.microsoft.com/pubs/1..._profiling.pdf (SQL Server TPC-H)

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  10. #10
    Membre très actif Avatar de Glauben
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 115
    Par défaut
    Merci pour le lien.

    Je cherche pour Oracle.

  11. #11
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454

  12. #12
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    D'autres lectures qui pourront t'intéresser autour du CBO :

    Comment l'optimiseur d'Oracle calcule le coût
    Le site de Wolfgang Breitling notamment son papier intitulé :
    A Look under the Hood of CBO: The 10053 Event
    le blog de Jonathan Lewis

    Ce qui t'interesse c'est la trace 10053, qui contient les différentes combinaisons de plans envisagées par Oracle.

    Ma question: Est ce que c'est possible de construire un logiciel qui détecte les arbres algébriques en utilisant JAVA et Oracle par exemple !!!!!!!!!
    si oui , comment faire ?
    Je dirais non ou je n'en vois pas l'intérêt, en tout cas c'est plutôt à l'éditeur (Oracle corp) de proposer ce genre de soft, il y a peut être déjà des choses dans le tunning pack.
    A ton niveau tu peux essayer de développer un parseur en java qui annalysera la trace 10053... bon courrage !

  13. #13
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Pas l'intérêt, pas l'intérêt, pour nous non...

    ...Mais peut être que c'est une espèce de projet scolaire ?

    Si c'est le cas, il faut voir quel est l'énoncé du projet, afin d'avoir la bonne approche.

    L'idée étant sûrement tout d'abord de créer un modèle générique de coût par étape. (genre définir cette notion d'arborescence avec étape mère / fille, associer un coût par étape, définir comment s'additionne / se multiplie le coût lors du parcours, ...)
    ... puis augmenter le périmètre au fur et mesure.

    Ca a l'air bien drôle en tous cas

  14. #14
    Membre très actif Avatar de Glauben
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 115
    Par défaut
    Bonjour,

    Oui, c'est un projet de fin d'étude.

    Merci pour vos réponses, mais j'ai pas trouvé la réponse alors j'ai changé le thème complétement.

    Je ne veux pas utiliser la tag Résolu par ce que je veux trouver une solution à ce problème avec vous.

    Merci.

Discussions similaires

  1. requêtes SQL avec les arbres algébrique
    Par amazircool dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/03/2007, 00h04
  2. Problèmes de pointeurs avec les arbres
    Par thierry57 dans le forum C
    Réponses: 17
    Dernier message: 22/12/2005, 23h35
  3. Tutoriel sur les arbres
    Par emidelphi77 dans le forum Langage
    Réponses: 2
    Dernier message: 09/10/2005, 23h09
  4. [LG]Les Arbres
    Par SaladinDev dans le forum Langage
    Réponses: 6
    Dernier message: 08/03/2005, 11h51
  5. Recherche documentation sur les arbres
    Par Oberown dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 22/09/2004, 01h40

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