Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/04/2011, 15h04   #1
Membre habitué
 
Avatar de Glauben
 
Étudiant
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 114
Points : 114
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.
__________________
Si Seulement On Pouvait Revenir En Arrière
Glauben est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 11/04/2011, 16h12   #2
Membre chevronné
 
Avatar de Oishiiii
 
Administrateur de base de données
Inscription : août 2009
Messages : 404
Détails du profil
Informations personnelles :
Âge : 24

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

Informations forums :
Inscription : août 2009
Messages : 404
Points : 643
Points : 643
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.
Oishiiii est déconnecté   Envoyer un message privé Réponse avec citation 21
Vieux 11/04/2011, 20h39   #3
Membre habitué
 
Avatar de Glauben
 
Étudiant
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 114
Points : 114
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
Type de fichier : png ArbresAlgebriques1.PNG (40,0 Ko, 34 affichages)
__________________
Si Seulement On Pouvait Revenir En Arrière
Glauben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 14h15   #4
Invité de passage
 
Inscription : juin 2011
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 6
Points : 1
Points : 1
Bonjour,
avez vous trouvé la structure convenable pour les plans de requêtes ?

Merci ^^
Sun22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 15h08   #5
Membre habitué
 
Avatar de Glauben
 
Étudiant
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

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

Merci ^^
Bonjour,

Pas encore
__________________
Si Seulement On Pouvait Revenir En Arrière
Glauben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 19h42   #6
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 16/06/2011, 16h56   #7
Membre habitué
 
Avatar de Glauben
 
Étudiant
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 114
Points : 114


Merci SQLpro, est ce que vous avez un document qui explique comment calculer le coût d'une requête SQL ?.
__________________
Si Seulement On Pouvait Revenir En Arrière
Glauben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 17h07   #8
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 417
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 31
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 417
Points : 2 309
Points : 2 309
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
__________________

(c'est ma photo)
Paku, Paku !
Pour les jeunes incultes : non, je ne suis pas un pokémon...

Le pacblog : http://pacmann.over-blog.com/
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 17/06/2011, 19h04   #9
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 18/06/2011, 01h37   #10
Membre habitué
 
Avatar de Glauben
 
Étudiant
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 114
Points : 114
Merci pour le lien.

Je cherche pour Oracle.
__________________
Si Seulement On Pouvait Revenir En Arrière
Glauben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2011, 02h06   #11
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 445
Points : 10 445
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Overview of the Optimizer
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 10h36   #12
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
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.

Citation:
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 !
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 22h30   #13
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 417
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 31
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 417
Points : 2 309
Points : 2 309
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
__________________

(c'est ma photo)
Paku, Paku !
Pour les jeunes incultes : non, je ne suis pas un pokémon...

Le pacblog : http://pacmann.over-blog.com/
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 00h46   #14
Membre habitué
 
Avatar de Glauben
 
Étudiant
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 114
Points : 114
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.
__________________
Si Seulement On Pouvait Revenir En Arrière
Glauben est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h49.


 
 
 
 
Partenaires

Hébergement Web