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:tmeindex [31/01/2018 14:31] hubert |
site:enseignement:master:bdr:tmeindex [20/02/2019 15:32] (Version actuelle) hubert |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{indexmenu_n>1}} | {{indexmenu_n>1}} | ||
+ | |||
/** TODO | /** TODO | ||
- | * remplacer BigannuaireSimple et Bigannuaire avec AnnuaireSans et AnnuaireAvec | + | * remplacer |
- | * adapter explications aux scripts d'Hubert: explain query select ... , @p1, ... | + | |
**/ | **/ | ||
- | {{indexmenu_n>5}} | ||
- | + | ====== TME Index ====== | |
- | ====== TME 4-5 Index ====== | + | |
L'objectif de ce TME est de comprendre l'utilisation des index pour évaluer des sélections: création d'un index, choix d'un ou plusieurs index pour évaluer une requête, avantages/inconvénients d'un index. Ce TME dure 2 séances : | L'objectif de ce TME est de comprendre l'utilisation des index pour évaluer des sélections: création d'un index, choix d'un ou plusieurs index pour évaluer une requête, avantages/inconvénients d'un index. Ce TME dure 2 séances : | ||
Ligne 18: | Ligne 16: | ||
===== Préparation du TME ===== | ===== Préparation du TME ===== | ||
+ | |||
+ | Lire la doc sur la [[site:enseignement:documentation:oracle:connexionoracle]] | ||
^commande^description^ | ^commande^description^ | ||
Ligne 45: | Ligne 45: | ||
Les deux tables sont indexées : **IndexAge** sur l'attribut //age// et **IndexCP** sur l'attribut //cp//. | Les deux tables sont indexées : **IndexAge** sur l'attribut //age// et **IndexCP** sur l'attribut //cp//. | ||
- | Dans le poly de TD, TD4-5, **<fc #ff0000>lire l'énoncé</fc>** de l'exercice 2 : **Plan d’une requête utilisant un index**. | + | /* |
+ | Dans le poly de TD, **<fc #ff0000>lire l'énoncé</fc>** de l'exercice 2 : **Plan d’une requête utilisant un index**. | ||
+ | */ | ||
Lire la section [[#questions_frequentes|Questions fréquentes]] en bas de page. | Lire la section [[#questions_frequentes|Questions fréquentes]] en bas de page. | ||
Ligne 437: | Ligne 438: | ||
- | Remarque: Déclarer plusieurs directives ''index(..,...)'' ne force **pas** à utiliser les plusieurs index simultanément, mais force à en utiliser un (le meilleur). Voir plutôt ''index_combine'' ou ''index_join'' pour cela [[https://docs.oracle.com/cd/B10501_01/server.920/a96533/hintsref.htm#5215]] | + | Remarque: Déclarer plusieurs directives ''index(..,...)'' ne force **pas** à utiliser les plusieurs index simultanément, mais force à en utiliser un (le meilleur). Voir plutôt ''index_combine(a IndexCP IndexAge)'' ou ''index_join'' pour cela [[https://docs.oracle.com/cd/B10501_01/server.920/a96533/hintsref.htm#5215]] |
- | ===== Exercice 4. Requête de jointure utilisant un index ===== | + | ===== Exercice 4 (facultatif). Requête de jointure utilisant un index ===== |
Il existe une table **Ville** (cp, ville, population) qui contient le nom de la ville pour chaque code postal cp. | Il existe une table **Ville** (cp, ville, population) qui contient le nom de la ville pour chaque code postal cp. | ||
Ligne 817: | Ligne 818: | ||
Description d'un index : profondeur de l'arbre, nombre de valeurs indexées. Interroger [[http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_1069.htm#i1578369|user_indexes]] | Description d'un index : profondeur de l'arbre, nombre de valeurs indexées. Interroger [[http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_1069.htm#i1578369|user_indexes]] | ||
<code sql> | <code sql> | ||
- | select index_name, blevel, distinct_keys from user_indexes; | + | select index_name as nom, blevel as profondeur, distinct_keys as nb_valeurs, leaf_blocks as pages_de_Rowids |
+ | from user_indexes; | ||
</code> | </code> | ||
Description d'une table : cardinalité, taille totale. Interroger [[http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2105.htm#REFRN20286|user_tables]] | Description d'une table : cardinalité, taille totale. Interroger [[http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2105.htm#REFRN20286|user_tables]] | ||
- | <code sql> | + | <code sql> |
- | select table_name, num_rows, blocks from user_tables; | + | column nom format A20 |
+ | select table_name as nom, num_rows as cardinalite, blocks as nb_pages | ||
+ | from user_tables; | ||
+ | |||
+ | select table_name as nom, num_rows as cardinalite, blocks as nb_pages | ||
+ | from all_tables | ||
+ | where table_name = 'BIGANNUAIRE'; | ||
</code> | </code> | ||
Ligne 835: | Ligne 843: | ||
| | ||
etc... de nombreuses autres informations sont disponibles tq par exemple l'histogramme représentant la distribution des valeurs d'un attribut. Voir la [[http://docs.oracle.com/cd/B19306_01/nav/catalog_views.htm#index-USE|liste des vues]] que vous pouvez interroger. | etc... de nombreuses autres informations sont disponibles tq par exemple l'histogramme représentant la distribution des valeurs d'un attribut. Voir la [[http://docs.oracle.com/cd/B19306_01/nav/catalog_views.htm#index-USE|liste des vues]] que vous pouvez interroger. | ||
+ | |||
+ | |||
===== Questions fréquentes ===== | ===== Questions fréquentes ===== | ||
Ligne 861: | Ligne 871: | ||
===== Divers ===== | ===== Divers ===== | ||
- | Aller vers [[site:enseignement:master:bdr:start | BDR]] | + | Aller vers [[site:enseignement:master:bdr:start]] |