site:enseignement:licence:3i009:tmejointure
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:licence:3i009:tmejointure [20/09/2017 16:46] – [Exercice 3. ORDRE des jointures entre 3 relations] hubert | site:enseignement:licence:3i009:tmejointure [17/11/2020 00:37] (Version actuelle) – [Exercice préliminaire] hubert | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
====== TME 6 Jointure ====== | ====== TME 6 Jointure ====== | ||
- | L' | + | /* TME pour 3I009 */ |
+ | |||
+ | |||
+ | L' | ||
+ | * Algorithmes de jointures, | ||
* Ordre des jointures, | * Ordre des jointures, | ||
* Coût d'une requête de jointure, | * Coût d'une requête de jointure, | ||
- | * Forme des arbres de jointure | + | * Forme des arbres de jointure (linéaire à gauche et autre forme), |
* Avantage/ | * Avantage/ | ||
Ligne 17: | Ligne 21: | ||
</ | </ | ||
===== Préparation du TME ===== | ===== Préparation du TME ===== | ||
- | Lire l' | + | Lire l' |
+ | |||
+ | |||
+ | Télécharger l' | ||
+ | |||
+ | Se connecter à [[site: | ||
+ | | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | /* on enlève cette partie PPTI | ||
^commande^description^ | ^commande^description^ | ||
Ligne 26: | Ligne 41: | ||
| **Alt-x** my/ | | **Alt-x** my/ | ||
| aller sur le paragraphe contenant @baseJCF et faire Ctrl-C Ctrl-C | créer vos tables J, C, F, les index et les statistiques nécessaires à l' | | aller sur le paragraphe contenant @baseJCF et faire Ctrl-C Ctrl-C | créer vos tables J, C, F, les index et les statistiques nécessaires à l' | ||
+ | */ | ||
+ | |||
+ | |||
Les tables d'un club de sport sont : | Les tables d'un club de sport sont : | ||
Ligne 39: | Ligne 57: | ||
* **F** (cnum, budget, depense, recette) | * **F** (cnum, budget, depense, recette) | ||
- | Les index existants s' | + | Les index existants s' |
+ | * **I_J_CNUM** | ||
+ | * **I_C_CNUM** | ||
+ | * **I_F_CNUM** | ||
- | Pour **afficher** les plans proposés par le SGBD et leur coût, | + | Pour **afficher** les plans proposés par le SGBD et leur coût, |
- | < | + | |
+ | /* | ||
+ | < | ||
| | ||
</ | </ | ||
puis terminer chaque requête par | puis terminer chaque requête par | ||
@p4 | @p4 | ||
+ | */ | ||
Ligne 56: | Ligne 79: | ||
</ | </ | ||
</ | </ | ||
+ | |||
===== Exercice préliminaire | ===== Exercice préliminaire | ||
Combien de n-uplets ont chacune des relations ? | Combien de n-uplets ont chacune des relations ? | ||
Quel est le coût d' | Quel est le coût d' | ||
<code sql> | <code sql> | ||
- | explain plan for | + | --explain plan for |
select * from J; | select * from J; | ||
- | @p4 | + | --@p4 |
</ | </ | ||
Ligne 134: | Ligne 158: | ||
<showif isloggedin> | <showif isloggedin> | ||
- | < | + | < |
</ | </ | ||
Ligne 146: | Ligne 170: | ||
</ | </ | ||
- | a) Afficher et dessiner **P2**. | + | a) Afficher et dessiner |
<showif isloggedin> | <showif isloggedin> | ||
Ligne 184: | Ligne 208: | ||
- | b) Quel est le coût de **P2** ? | + | c) Quel est le coût de **P2** ? |
<showif isloggedin> | <showif isloggedin> | ||
<fc #008000> | <fc #008000> | ||
Ligne 234: | Ligne 258: | ||
- | b) détailler | + | b) Détailler |
<showif isloggedin> | <showif isloggedin> | ||
Ligne 246: | Ligne 270: | ||
- | c) Quel est le coût du plan exprimé en fonction du cout pour lire une table, un index et pour lire un nuplet seul. | + | c) Quel est le coût du plan exprimé en fonction du coût pour lire une table, un index et pour lire un nuplet seul. |
<showif isloggedin> | <showif isloggedin> | ||
Ligne 264: | Ligne 288: | ||
=== Question 4) === | === Question 4) === | ||
+ | /* | ||
+ | Jointure par boucles imbriquées avec index sur l' | ||
+ | */ | ||
On considère la requête **R4**. | On considère la requête **R4**. | ||
Ligne 321: | Ligne 348: | ||
* La directive '' | * La directive '' | ||
- | Reprendre les requêtes de l' | + | Reprendre les requêtes |
Ligne 593: | Ligne 620: | ||
-------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||
</ | </ | ||
- | |||
- | |||
</ | </ | ||
Ligne 615: | Ligne 640: | ||
Dessiner le plan obtenu. Expliquer son coût. | Dessiner le plan obtenu. Expliquer son coût. | ||
+ | |||
+ | <showif isloggedin> | ||
+ | <fc # | ||
+ | < | ||
+ | ----------------------------------------------------------------------------------- | ||
+ | | Id | Operation | ||
+ | ----------------------------------------------------------------------------------- | ||
+ | | 0 | SELECT STATEMENT | ||
+ | | 1 | NESTED LOOPS | ||
+ | | 2 | | ||
+ | | 3 | NESTED LOOPS | ||
+ | |* 4 | TABLE ACCESS BY INDEX ROWID| J | ||
+ | |* 5 | INDEX RANGE SCAN | I_J_SALAIRE | 997 | | ||
+ | | 6 | TABLE ACCESS BY INDEX ROWID| F | ||
+ | |* 7 | INDEX UNIQUE SCAN | I_F_CNUM | ||
+ | |* 8 | INDEX UNIQUE SCAN | I_C_CNUM | ||
+ | |* 9 | TABLE ACCESS BY INDEX ROWID | C | ||
+ | ----------------------------------------------------------------------------------- | ||
+ | </ | ||
+ | </ | ||
Ligne 630: | Ligne 675: | ||
Dessiner le plan obtenu. Expliquer son coût. | Dessiner le plan obtenu. Expliquer son coût. | ||
+ | |||
+ | |||
+ | <showif isloggedin> | ||
+ | <fc # | ||
+ | < | ||
+ | ------------------------------------------------------------------------------------ | ||
+ | | Id | Operation | ||
+ | ------------------------------------------------------------------------------------ | ||
+ | | 0 | SELECT STATEMENT | ||
+ | | 1 | NESTED LOOPS | ||
+ | | 2 | | ||
+ | |* 3 | HASH JOIN | ||
+ | |* 4 | TABLE ACCESS FULL | J | 5 | 90 | 68 (0)| | ||
+ | | 5 | TABLE ACCESS BY INDEX ROWID| C | 2500 | 37500 | 23 (0)| | ||
+ | |* 6 | INDEX RANGE SCAN | I_C_DIVISION | 2500 | | ||
+ | |* 7 | INDEX UNIQUE SCAN | I_F_CNUM | ||
+ | | 8 | TABLE ACCESS BY INDEX ROWID | F | 1 | 7 | | ||
+ | ------------------------------------------------------------------------------------ | ||
+ | </ | ||
+ | </ | ||
site/enseignement/licence/3i009/tmejointure.1505918767.txt.gz · Dernière modification : de hubert