Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:master:bdr:tmejointurerepartie

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
site:enseignement:master:bdr:tmejointurerepartie [08/03/2018 12:31]
hubert [TME Jointure répartie]
site:enseignement:master:bdr:tmejointurerepartie [15/03/2019 08:41]
hubert
Ligne 13: Ligne 13:
   * Comprendre l'​ordre et l'​emplacement des opérations permettant d'​évaluer une requête répartie (quel site traite quelles opérations?​).   * Comprendre l'​ordre et l'​emplacement des opérations permettant d'​évaluer une requête répartie (quel site traite quelles opérations?​).
  
-=== Scénario ===+==== Scénario ​====
 <code bash> <code bash>
 cd <votre repertoire de travail> cd <votre repertoire de travail>
Ligne 26: Ligne 26:
 -- se connecter en remplaçant 1234567 par votre numéro d'​étudiant -- se connecter en remplaçant 1234567 par votre numéro d'​étudiant
 CONNECT E1234567/​E1234567@ora11 ​ CONNECT E1234567/​E1234567@ora11 ​
--- vérifier que la connexion est correcte ​en affichant le nom du SGBD. Cela doit afficher : oracle+-- vérifier que la connexion est correcte. Le nom du SGBD qui doit s'afficher ​est : oracle
 select sys_context('​USERENV',​ '​INSTANCE_NAME'​) from dual;  select sys_context('​USERENV',​ '​INSTANCE_NAME'​) from dual; 
  
Ligne 35: Ligne 35:
 -- se connecter en remplaçant 1234567 par votre numéro d'​étudiant -- se connecter en remplaçant 1234567 par votre numéro d'​étudiant
 CONNECT E1234567/​E1234567@ora10 CONNECT E1234567/​E1234567@ora10
--- vérifier que la connexion est correcte ​en affichant le nom du SGBD. Cela doit afficher : ora10+-- vérifier que la connexion est correcte. Le nom du SGBD qui doit s'afficher ​est : ora10
 select sys_context('​USERENV',​ '​INSTANCE_NAME'​) from dual;  select sys_context('​USERENV',​ '​INSTANCE_NAME'​) from dual; 
 </​code>​ </​code>​
  
-===Données ===+====Données ​====
   * Le site 1 **ora11** contient les Clubs dans la table **Club**(cnum,​ nom, division, ville)   * Le site 1 **ora11** contient les Clubs dans la table **Club**(cnum,​ nom, division, ville)
    
Ligne 112: Ligne 112:
 === R1 : Jointure seule avec un transfert volumineux === === R1 : Jointure seule avec un transfert volumineux ===
  
-Afficher les joueurs ​avec leur club+Afficher les stagiaires ​avec leur club
 <code sql> <code sql>
     connect ... @ora11     connect ... @ora11
Ligne 148: Ligne 148:
  
   * R3b : jointure très sélective et avec un transfert faible.   * R3b : jointure très sélective et avec un transfert faible.
- La directive **driving_site** prend en argument le nom de la variable //s// associée à la table Stagiaire stockée sur le site dans lequel oracle doit traiter la jointure. Autrement dit, Oracle doit traiter la jointure sur le site 2 contenant Stagiaire.+ La directive **driving_site** prend en argument le nom de la variable //s// associée à la table //Stagiaire// stockée sur le site dans lequel oracle doit traiter la jointure. Autrement dit, Oracle doit traiter la jointure sur le site 2 contenant Stagiaire.
 <code sql> <code sql>
     EXPLAIN plan FOR     EXPLAIN plan FOR
Ligne 180: Ligne 180:
 Chronométrer les transferts en répétant n fois (n=10) l'​exécution d'une requête afin d'​obtenir des durées significatives mesurables. Chronométrer les transferts en répétant n fois (n=10) l'​exécution d'une requête afin d'​obtenir des durées significatives mesurables.
  
-Pour mesurer principalement les transferts de données entre les sites et non la durée d'​affichage du résultat, on modifie légèrement les requêtes : le résultat d'une requête est agrégé (par exemple avec un max). Ainsi, le résultat d'une requête sera "​petit",​ il aura un seul nuplet. En conséquence,​ le temps d'​affichage devient négligeable face à la durée des transferts de données entre les sites.+Pour mesurer principalement les transferts de données entre les sites et non la durée d'​affichage du résultat, on modifie légèrement les requêtes : le résultat d'une requête est agrégé (par exemple avec un max). Ainsi, le résultat d'une requête sera "​petit",​ il aura un seul nuplet. En conséquence,​ le temps d'​affichage devient négligeable face à la durée des transferts de données entre les sites. Le temps total que l'on chronomètre (avec ''​set timing on''​) correspond principalement aux transferts de données.
  
 Comparer les deux exécution suivantes a) et b). Laquelle est la plus rapide ? Est elle beaucoup plus rapide ? Comparer les deux exécution suivantes a) et b). Laquelle est la plus rapide ? Est elle beaucoup plus rapide ?
site/enseignement/master/bdr/tmejointurerepartie.txt · Dernière modification: 20/03/2019 14:05 par hubert