site:enseignement:master:bdr:tmejointurerepartie
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| site:enseignement:master:bdr:tmejointurerepartie [06/03/2018 15:28] – [4) Durée des transferts] hubert | site:enseignement:master:bdr:tmejointurerepartie [20/03/2019 14:05] (Version actuelle) – [3) Requêtes réparties] hubert | ||
|---|---|---|---|
| Ligne 9: | Ligne 9: | ||
| L' | L' | ||
| entre 2 relations qui sont situées sur 2 sites distincts. | entre 2 relations qui sont situées sur 2 sites distincts. | ||
| - | * définir | + | * Définir |
| - | * formuler | + | * Formuler |
| - | * comprendre | + | * Comprendre |
| - | === 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' | -- se connecter en remplaçant 1234567 par votre numéro d' | ||
| CONNECT E1234567/ | CONNECT E1234567/ | ||
| - | -- vérifier la connexion | + | -- vérifier |
| select sys_context(' | select sys_context(' | ||
| - | -- doit afficher oracle | ||
| </ | </ | ||
| Ligne 36: | Ligne 35: | ||
| -- se connecter en remplaçant 1234567 par votre numéro d' | -- se connecter en remplaçant 1234567 par votre numéro d' | ||
| CONNECT E1234567/ | CONNECT E1234567/ | ||
| + | -- vérifier que la connexion est correcte. Le nom du SGBD qui doit s' | ||
| select sys_context(' | select sys_context(' | ||
| - | -- doit afficher ora10 | ||
| </ | </ | ||
| - | ===Données === | + | ====Données |
| * Le site 1 **ora11** contient les Clubs dans la table **Club**(cnum, | * Le site 1 **ora11** contient les Clubs dans la table **Club**(cnum, | ||
| Ligne 111: | Ligne 110: | ||
| */ | */ | ||
| - | == R1 : Jointure seule avec un transfert volumineux == | + | === R1 : Jointure seule avec un transfert volumineux |
| - | Afficher les joueurs | + | Afficher les stagiaires |
| <code sql> | <code sql> | ||
| connect ... @ora11 | connect ... @ora11 | ||
| Ligne 123: | Ligne 122: | ||
| </ | </ | ||
| - | == R2 : Jointure avec sélection == | + | === R2 : Jointure avec sélection |
| <code sql> | <code sql> | ||
| set linesize 120 | set linesize 120 | ||
| Ligne 137: | Ligne 136: | ||
| - | == R3 Jointure très sélective == | + | === R3 Jointure très sélective |
| * R3a : Jointure très sélective et avec un transfert volumineux | * R3a : Jointure très sélective et avec un transfert volumineux | ||
| <code sql> | <code sql> | ||
| Ligne 149: | 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 159: | Ligne 158: | ||
| </ | </ | ||
| - | | + | ===R4 : jointure et sélection avec index=== |
| Dans le site 2, créer un index sur Stagiaire(cnum). | Dans le site 2, créer un index sur Stagiaire(cnum). | ||
| - | Afficher le plan de R2 (sélection sur le salaire). Vérifier que l' | ||
| - | ===Proposer d'autres | + | <code sql> |
| - | * Requete | + | CONNECT ... @ora10 |
| + | create index .... | ||
| + | @liste | ||
| + | </ | ||
| + | |||
| + | |||
| + | Montrer que l'index Stagiaire(cnum) est utilisé pour **R3** (sélection sur la ville). Quelle partie de la requête | ||
| + | |||
| + | Pourquoi l' | ||
| + | |||
| + | /*pour illustrer les optimisations de requêtes réparties vues en cours.*/ | ||
| + | ===R5: Proposer une requête | ||
| + | La première jointure traitée le site 2, la 2ème jointure | ||
| + | ===R6: Proposer une requete avec 1 jointure entre deux table traitée par semi-jointure=== | ||
| + | Ajouter sur le site 1 une table Match(licence, | ||
| + | * transférer **le numéro de licence** des joueurs ayant fait un match en 2018 du site 1 vers le site 2. Ne **pas** transférer les commentaires des matchs. | ||
| + | * transférer les joueurs satisfaisant la requête du site 2 vers le site 1. | ||
| + | * finir le calcul de la requête sur le site 1 | ||
| ===== 4) Durée des transferts ===== | ===== 4) Durée des transferts ===== | ||
| - | Chronométrer les transferts en répétant n fois (n=10) l' | + | Chronométrer les transferts en répétant n fois (n=10) l' |
| - | Pour mesurer principalement les transferts entre les sites et non la durée d' | + | Pour mesurer principalement les transferts |
| - | Comparer les deux exécution suivantes | + | Comparer les deux exécution suivantes |
| - | * Avec transfert de tous les Stagiaires | + | * a) Avec transfert de tous les Stagiaires |
| <code plsql> | <code plsql> | ||
| Ligne 193: | Ligne 208: | ||
| </ | </ | ||
| - | * Avec transfert des clubs de la ville 7 | + | * b) Avec transfert des clubs de la ville7 |
| <code plsql> | <code plsql> | ||
| set timing on | set timing on | ||
| Ligne 220: | Ligne 235: | ||
| - | * Fragmenter les Club par division: | + | * Fragmenter les Club par division : placer les clubs de première division sur le site 1 (table Club1) et ceux de deuxième division sur le site 2 (table Club2). |
| * Définir la **vue** Club réunissant tous les clubs des deux divisions. | * Définir la **vue** Club réunissant tous les clubs des deux divisions. | ||
| - | * Est-ce que les 2 fragments sont accédés pour une requête affichant seulement les clubs de 1ère division ? | + | * Est-ce que les 2 fragments sont accédés pour une requête affichant seulement les clubs de 1ère division |
| <code sql> | <code sql> | ||
| select * | select * | ||
site/enseignement/master/bdr/tmejointurerepartie.1520346534.txt.gz · Dernière modification : de hubert
