Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
site:enseignement:master:bdr:tmejointurerepartie [09/03/2018 10:02] hubert [3) Requêtes réparties] |
site:enseignement:master:bdr:tmejointurerepartie [20/03/2019 14:05] (Version actuelle) hubert [3) Requêtes réparties] |
||
---|---|---|---|
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 160: | Ligne 160: | ||
===R4 : jointure et sélection avec index=== | ===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'index Stagiaire(cnum) est utilisé. Expliquer le plan. | + | |
+ | <code sql> | ||
+ | CONNECT ... @ora10 | ||
+ | create index .... | ||
+ | @liste | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Montrer que l'index Stagiaire(cnum) est utilisé pour **R3** (sélection sur la ville). Quelle partie de la requête est posée sur le site 2 ? Combien de requêtes sont posées sur le site 2 pour obtenir le résultat complet de R3 ? | ||
+ | |||
+ | Pourquoi l'index Stagiaire(cnum) n'est pas utilisé pour traiter la requête R2 ? | ||
/*pour illustrer les optimisations de requêtes réparties vues en cours.*/ | /*pour illustrer les optimisations de requêtes réparties vues en cours.*/ | ||
===R5: Proposer une requête avec 2 jointures entre 3 tables === | ===R5: Proposer une requête avec 2 jointures entre 3 tables === | ||
- | La première jointure traitée le site 2, la 2eme jointure sur le site 1. | + | La première jointure traitée le site 2, la 2ème jointure sur le site 1. |
===R6: Proposer une requete avec 1 jointure entre deux table traitée par semi-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, annee, commentaire) | Ajouter sur le site 1 une table Match(licence, annee, commentaire) | ||
- | * 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 match | + | * 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 | + | * 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 | * finir le calcul de la requête sur le site 1 | ||
- | |||
- | |||
- | |||
- | |||
===== 4) Durée des transferts ===== | ===== 4) Durée des transferts ===== |