Bases de données avancées



Documents pareils
Administration des bases de données. Jean-Yves Antoine

TP Bases de données réparties

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Bases de Données relationnelles et leurs systèmes de Gestion

Le Langage De Description De Données(LDD)

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Les bases de données

Langage SQL : créer et interroger une base

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

Le langage SQL Rappels

Bases de Données. Plan

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Évaluation et optimisation de requêtes

Bases de données avancées

Introduction au Système de Gestion de Base de Données et aux Base de Données

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Le Langage SQL version Oracle

Optimisation SQL. Quelques règles de bases

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

16H Cours / 18H TD / 20H TP

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

1 Introduction et installation

Intégrité des données

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Administration de Bases de Données : Optimisation

Administration des bases de données relationnelles Part I

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

La présente publication est protégée par les droits d auteur. Tous droits réservés.

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Optimisations des SGBDR. Étude de cas : MySQL

Cours Bases de données

Bases de données Cours 1 : Généralités sur les bases de données

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Structure fonctionnelle d un SGBD

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Bases de données cours 1

Création et Gestion des tables

Bases de données avancées Introduction

Bases de données réparties: Fragmentation et allocation

Intégrité sémantique dans les bases de données relationnelles

MODE OPERATOIRE OPENOFFICE BASE

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Présentation du module Base de données spatio-temporelles

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Master Exploration Informatique des données DataWareHouse

Systèmesdegestionde. basesdedonnées

Bases de données relationnelles

Bases de Données Avancées

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

INTRODUCTION : Données structurées et accès simplifié

Le langage SQL (première partie) c Olivier Caron

MySQL / SQL EXEMPLES

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Introduction aux bases de données

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

Bases de données élémentaires Maude Manouvrier

Notes de cours : bases de données distribuées et repliquées

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Système binaire. Algèbre booléenne

Systèmes de Gestion de Bases de Données

CREATION WEB DYNAMIQUE

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

TP Contraintes - Triggers

Bases de Données Relationnelles. Le Modèle Relationnel

Bases de données et sites WEB

TD n 10 : Ma première Base de Données

Table des matières. Avant-propos

et les Systèmes Multidimensionnels

I4 : Bases de Données

Introduction aux Bases de Données

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Partie II Cours 3 (suite) : Sécurité de bases de données

COURS de BASES de DONNEES

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

TP11 - Administration/Tuning

SQL Historique

Bases de Données Avancées

Cours SQL. Base du langage SQL et des bases de données

ARBRES BINAIRES DE RECHERCHE

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

INTRODUCTION AU DATA MINING

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Vincent Augusto

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

PHP 5. La base de données MySql. A. Belaïd 1

Module BDR Master d Informatique (SAR)

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

1. Introduction. Bases de données Réparties, Fédérées et Réplication. Plan. Bibliographie du cours

A QUOI SERVENT LES BASES DE DONNÉES?

Les structures de données. Rajae El Ouazzani

Transcription:

Bases de données avancées Jean-Yves Antoine LI - Université François Rabelais de Tours Jean-Yves.Antoine@univ-tours.fr UFR Sciences et Techniques IUP GMI Blois IUP3 Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 1

Bases de données avancées Performances : indexation et optimisation UFR Sciences et Techniques IUP GMI Blois IUP3 Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 2

Problématique Bases de données : très grosses masses de données Entrées / sorties : temps d accès à un enregistrement physique Requête SQL : combinatoire des calculs relationnels (jointure, ) Exemples Restriction SELECT nom, prenom FROM base_insee WHERE ville= Blois ; insee 50 000 000 tuples Jointure SELECT c.nom FROM client c, pays p WHERE p.pays = c.pays AND p.continent = Europe ; client 10000 tuples pays 200 tuples (5000 clients Européens ; 25 pays Européens) Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 3

Optimisation de performances Accès aux données : indexation, hachage Jointure physique entre tables : clusters Optimisation des requêtes : optimisation logique et physique Tuning de l organisation physique : block size Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 4

Indexation Principe Index : table associant directement à une clé l adresse du tuple considéré Organisation d index : brut, trié, hiérarchisé, avec hachage Index sur clé primaire mais également sur champ très utilisés («clé» secondaire) Index trié simple : index dense index 1 3 5 7 adr 1 adr 3 adr 5 adr7 1 5 3 7 table Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 5

Index trié et hiérarchisé : arbre B Index non dense au premier niveau : tests de valeur à chaque niveau B (+) Tree ordre 1 2 4 6 6 15 9 12 15 1 2 3 5 7 10 13 4 6 9 12 15 B Tree : arbre trié et équilibré pour optimiser le temps d accès à l information Définition formelle : un arbre B d ordre m est un arbre tq : a) toutes les feuilles sont au même niveau b) tout nœud intermédiaire a un nombre de feuilles compris dans [m+1, 2m+1] c) le nœud racine a un nombre de feuilles compris dans [0,2m+1] (ou 0 si arbre vide) Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 6

Index hiérarchisé : arbre B Insertion dans un arbre B : a) recherche du nœud terminal où doit se situer la clé b) si nœud non saturé, insertion, sinon migration (éventuelle récursive) au niveau supérieur Exemple : arbre ordre 1 6 8? 2 6 15 9 13 15 5? 1 3 7 11 14 2 4 9 12 15 6 13 10? Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 7

Index hiérarchisé : arbre B Suppression dans un arbre B : problème identique : fusion de nœuds éventuelle Exemple : arbre ordre 1 2 6 6 6? 15 9 13 15 1? 1 3 7 11 14 2 4 9 12 15 6 13 7? Modification d index : opération lourde car re-calcul de l arbre équilibré Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 8

Index hiérarchisé Arbre B / Arbre B+ B+ 2 6 6 15 9 13 15 1 4 7 11 14 2 5 8 12 15 6 9 13 2 6 9 13 B 1 3 7 11 14 2 4 8 12 15 Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 9

Indexation et hachage Technique générale (SGF, SGBD ) d accès aux données par une clé Valeur clé Fonction de hachage Adresse relative Hachage statique Taille de fichier fixe N adresses disponibles Clé item 1 Clé item 2 Clé item 3 Page N -1 Page adresse N Page N +1 Item 1 Item 2 Item Fonction de hachage Débordement modulo ou autres paquets de débordement Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 10

Hachage dynamique Hachage statique excellentes performances tant qu il n y a pas de débordement inadapté aux données en nombre variable : indexation SGBD Hachage dynamique : principe doublement de l espace d adressage (page) en cas de saturation hachage : utilisation progressive des bits de la clé en fonction des besoins clé 0 0 1 1 0 1 0 0 1 1 0 1 H(2) H(3) Hachage dynamique : méthodes hachage extensible hachage linéaire Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 11

Hachage dynamique Hachage extensible [Fagin 1979] Duplication d une page dès sa saturation Répertoire adressant ces pages en fonction des M premiers bits de la clé Doublement du répertoire si utilisation d un bit de clé supplémentaire clé répertoire fichier table (2 items / paquet) 0 0 1 1 0 1 H(2) 00 T1 T2 T3 T7 T5 T6 01 10 11 Insertion T7? (110101) T8? (010000) Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 12

Hachage extensible Insertion clé répertoire fichier table (2 items / paquet) 0 0 1 1 0 1 H(3) Doublement du répertoire 000 T1 T8 T2 T3 T7 T5 T6 001 010 011 100 101 110 111 T1=.. 000 T2= 100 T9? (110101) Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 13

Hachage extensible Insertion clé répertoire fichier table (2 items / paquet) 0 0 1 1 0 1 H(3) Pas de doublement 000 T1 T8 T2 T3 T7 T9 T5 T6 001 010 011 100 101 110 111 T3=.. 001 T7= 101 Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 14

Hachage dynamique Hachage linéaire [Litwin 1980] Saturation d une page : duplication d une page courante Pointeur cyclique sur page courante + niveau d éclatement Page de débordement : mise en attente d éclatement du paquet concerné clé 0 0 1 1 0 1 H(N) 0 0 1 1 0 1 H(N-1) 0 0 1 1 0 1 pages Découpage niveau N Découpage niveau N-1 page de débordement Pointeur (niveau N) Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 15

Hachage linéaire Insertion Pages de 2 articles maximum T11? (110100) T12? (010011) 0 0 1 1 0 0 000 001 T1 T2 T3 100 101 10 11 T4 T11 T5 T6 T7 T8 T9 T10 page de débordement Niveau 3 Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 16

Hachage linéaire Insertion avec débordement T12? (010011) 0 1 0 0 1 1 000 001 T1 T2 T3 100 101 10 11 T4 T11 T5 T6 T7 T8 T9 T10 page de débordement Niveau 3 Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 17

Hachage linéaire Insertion avec débordement : éclatement du paquet courant T12? (010011) 000 001 T1 T2 T3 100 101 010 110 11 T4 T11 T5 T6 T7 T8 T9 T10 T7 = 010 T8 = 110 T12 page de débordement Niveau 3 Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 18

Hachage linéaire Insertion avec débordement T13? (001100) 0 0 1 1 0 0 recopie T12 dans page éclatée 000 001 T1 T2 T3 100 101 010 110 11 T4 T11 T5 T6 T7 T8 T9 T10 T7 = 010 T8 = 011 T12 T13 page de débordement Niveau 3 Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 19

Index secondaire Index sur un attribut non clé fréquemment utilisé dans une requête Index non discriminant Intégré ou à part (fichier inverse) Index à adressage direct ou indirection sur l index primaire temps mise à jour vs. temps d accès Sélection / restriction : combinaison d index secondaires travail sur les index séparés puis intersection travail sur un index en premier index multi-attributs SELECT nom, prenom FROM base_insee WHERE ville= Blois AND sociopro = ouvrier ; Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 20

Index secondaire Index secondaire hiérarchique (arbre B+) 2 4 6 6 15 9 12 15 1 2 3 5 7 10 13 4 6 9 12 15 Plusieurs pointeurs pour une valeur de clé secondaire Adressage direct ou sur index primaire Index secondaire haché : pas de modification (plusieurs adresses par page) Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 21

Index bitmap Index sur champ ayant peu de valeurs [O Neil 1997] Table de bijection entre toutes les valeurs possibles et les tuples Table CENTRE 18 37 41 45 Ad Blois 41 0 0 1 0 Tours 37 Index BITMAP 0 1 0 0 Orléans 45 0 0 0 1 Amboise 37 0 1 0 0 Vendôme 41 0 0 1 0 Utilisation Champ à domaine de valeurs restreintes Indexation de champs à valeurs continues : plages de valeurs Très efficace pour l accès à des attributs multiples ou des valeurs multiples d un même attribut : union ou intersection des vecteurs de bits Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 22

Hachage multi-attributs Hachage multi-attribut statique Concaténation de fonctions de hachage travaillant sur chaque attribut Nombre fixe de bits alloués à chaque fonction : indexation statique Attribut 1 75 Attribut 2 Attribut 3 Paris 2 250 000 H1 H2 H3 0 1 1 1 0 0 1 0 Numéro paquet Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 23

Hachage multi-attributs Hachage multi-attribut statique : accès sur un seul attribut SELECT * FROM Table_Ville VERS Ville = Paris ; Attribut 1?? Attribut 2 Attribut 3 Paris?? H2 X X 1 1 0 X X X Numéro paquet 01110011 01110010 11110010 Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 24

Hachage multi-attributs Hachage multi-attribut dynamique Hachage extensible sur plusieurs dimensions (une par attribut) : éclatement successifs suivant une dimension puis une autre Répertoire multidimensionnel Attribut 2 Attribut 1 Problème : choix de la dimension d éclatement Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 25

Indexation : conclusion Exemple SELECT nom, prenom FROM base_insee WHERE n_insee= 06612. ; SELECT * FROM base_insee WHERE ville= Blois AND sociopro= ouvrier ; insee 50 000 000 tuples Intérêt et limitations Accès très efficace aux données pour des clés discriminantes Mise à jour ralentie : calcul arbre B, éclatement répertoire de hachage.. Différentes techniques : adaptation à chaque type d attribut c Comparaison des méthodes d indexation Hachage : efficace en accès mais pas adapté pour les accès ordonnées ou par plages de valeurs, à la différence des index triés (arbres B) Hachage extensible plus robuste que le hachage linéaire face à des distribution de données mal équilibrées Le répertoire utilisé en hachage extensible peut devenir volumineux (hachage linéaire : simple pointeur) Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 26

Indexation : SQL Index simple (attribut unique) ou composé (plusieurs attributs) Oracle 8i : 16 attributs maximum dans un index composé Oracle 10g : 32 attributs maximum dans un index composé Index sur table ou sur plusieurs tables réunies par un cluster Possibilité de définir des index multiples sur un objet : Oracle choisira le meilleur index pour une requête donnée Index unique : un tuple unique par valeur d index Remarque Indexation implicite / explicite contrainte d unicité définie sur les attributs correspondant à l index Indexation automatique des attributs clés ou soumis à une contrainte d unicité Indexation explicite (création d index) possible dans les autres cas Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 27

Indexation : SQL Création (syntaxe simplifiée) CREATE INDEX [UNIQUE] [CLUSTERED] index ON nom_table [ USING {btree hash } ] [ ( nom_colonne [ ASC DESC ],... ) ] [ { IN ON } nom_dbspace ] ; Création (syntaxe simplifiée : Oracle) CREATE INDEX [UNIQUE BITMAP] index ON [ nom_table ( nom_colonne,... ) [ NOSORT ] ; Suppression DROP INDEX <nom_index> ; CREATE INDEX index ON CLUSTER nom_cluster [ NOSORT ] ; T able indexée Association implicite avec un index basé sur la clé primaire Définition : clause ORGANIZATION INDEX en fin de CREATE TABLE; Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 28

Indexation : SQL Effets de l indexation Temps d accès aux données réduit si la requête porte sur le(s) attribut(s) indexé(s) Accélération fonction de la taille de la table (ou du cluster) concerné Ralentissement des mises à jour (re-calcul d index) Optimisation de l indexation sur les critères de sélection Accès accéléré uniquement sur comparaison des valeurs d index à des valeurs... WHERE parti >= 0 et non pas.. WHERE parti IS NOT NULL Pas d accélération si calcul sur un attribut indexé WHERE date_s = to_date( 01/01/03 ) et non WHERE to_char(date_s) = 01/01/03 Dans certains SGBD, possibilité de créer des champs calculés indexés pour précisément gérer ce type de requête Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 29

Jointure physique : Cluster Problème Cluster Exemple Temps perdu à vérifier les conditions de jointure lors d une requête multi-tables Regroupement physique des tables autour des clés de jointure : clé de cluster Utilisation limitée aux jointures très fréquemment sollicitées SELECT c.nom FROM client c, pays p WHERE p.pays = c.pays AND p.continent = Europe ; Oracle : type de cluster Cluster à index Cluster à hachage indexation sur la clé du cluster client 10000 tuples fonction de hachage appliquée à la clé du cluster pays 200 tuples (5000 clients Européens ; 25 pays Européens) Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 30

Cluster Création (syntaxe simplifiée) CREATE CLUSTER nom_cluster (<nom_cle1 type_cle1> [, <nom_clé type_cle2...] ) [SIZE taille_bloc] { INDEX HASHKEYS integer } ; Suppression DROP CLUSTER <nom_cluster> [INCLUDING TABLES [CASCADE CONSTRAINTS]] INCLUDING TABLES suppression des tables liées au cluster (DROP TABLE préalable sinon) CASCADE CONSTRAINTS suppression des contraintes d intégrité référentielles pointant sur les tables du cluster Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 31

Optimisation Optimisation Temps d accès : indexation Calcul relationnel : optimisation automatique des ordres SQL SGBD : module d optimisation automatique Plan d exécution : SQL langage sémantique de haut niveau Optimisation dynamique : interprétation SGBD Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 32

Optimisation requête SQL Parseur SQL compilation requête arbre abstrait de requête optimiseur Optimisation logique Optimisation physique requête sous forme canonique métadonnées du dictionnaire résultat Exécution plan d exécution données de la BD Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 33

Parseur SQL Arbre abstrait de requête SELECT c.nom FROM client c, pays p WHERE p.pays = c.pays AND p.continent = Europe ; PROJ nom RESTRICT Europe Algèbre relationnelle JOIN CLIENT PAYS Vues Intégration de la définition des vues Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 34

Optimisation logique Exemple SELECT c.nom FROM client c, pays p WHERE p.pays = c.pays AND p.continent = Europe ; ; plusieurs écritures SQL possibles plusieurs arbres de requête possibles Mise sous forme canonique de la requête Optimisation indépendante de la structure et du contenu de la BD Ré-ordonnancement de l arbre de requête (ordre des opérations) pour arriver à une forme canonique efficace Règles de transformation de requête PROJ nom RESTRICT Europe JOIN CLIENT PAYS PROJ nom JOIN RESTRICT Europe CLIENT PAYS Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 35

Optimisation logique : transformations Restrictions et projections Regroupement des restrictions attribut (σ condition (Table)) σ condition ( attribut (Table)) Si condition porte sur attributs Distributivité de la restriction σ distributive sur,, DIFF σ (quasi) distributive sur JOIN Exemple : JOIN (T1, σ condition (T2)) σ condition ( JOIN (T1, T2)) Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 36

Optimisation logique : transformations Distributivité de la projection distributif sur, mais par sur la différence DIFF distributif sur JOIN Exemple : C (JOIN (T1,T2) JOIN ( C T1 (T1), C T2 (T2)) Commutativité et associativité,, JOIN sont commutatives et associatives DIFF et DIV non commutatives, non associatives Exemple : choix de la plus petite table comme relation source de jointure Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 37

Optimisation logique : transformations Expressions arithmétiques et logiques transitivité, distributivité, commutativité des opérateurs arithmétiques ou booléens Exemple : σ A > B AND B > 3 σ A > 3 AND B > 3 AND A > B Exemple : σ Cd1 OR ( Cd2 AND Cd3) σ (Cd1 OR Cd2) AND (Cd1 OR Cd3) Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 38

Optimisation logique Stratégie générale d optimisation 1. Descendre les restrictions aussi bas que possible (pour les exécuter en premier) et regrouper les restrictions portant sur la même table 2. Descendre ensuite les projections et les regrouper également 3. Réaliser les unions 4. Réaliser les jointures Détachement op. unaires op. binaires Décomposition de la requête en restriction suivies de semi-jointures Exemple SELECT c.nom FROM client c, pays p WHERE p.pays = c.pays AND p.continent = Europe ; SELECT nom FROM clients WHERE pays IN (SELECT pays FROM pays WHERE continent = Europe ); Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 39

Optimisation physique Objectif Étude de la structure de la base de données (implantation physique) Choix des procédures de niveau inférieur les plus adaptées pour la réalisation de chaque opérateur : plusieurs méthodes pour un même opérateur Exemple : restriction Fonction de coût pour chaque opération Accès mémoire Utilisation du processeur Coût : interdépendances des opérations Exemple : SELECT DISTINCT Calcul du meilleur chemin d exécution : Plan de requête minimisant le coût global de réalisation de la requête Espace de recherche trop important : heuristiques Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 40

Administration : mesures de performances Dictionnaire Oracle Index Clusters USER_INDEXES, ALL_INDEXES, DBA_INDEXES USER_CLUSTERS, ALL_CLUSTERS, DBA_CLUSTERS USER_CLUSTERS_HASH_EXPRESSIONS, etc... Vues dynamiques de performance V$SYSSTAT, V$ROWCACHE, V$LIBRARYCACHE Mesure de la durée des ordres SQL SQL> set timing on SQL> votre commande SQL SQL> set timing off Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 41

Bibliographie Ouvrages d entrée G. GARDARIN, Bases de données objet et relationnel, Eyrolles, Paris. Chapitres III et X DATE C. J. (2000) Introduction aux bases de données (7 édition), Vuibert, Paris, ISBN 2-7117-8664-1. Chapitre XVII Travaux cités R. FAGIN et al. (1979) Extensible hashing : a fast access method for dynamic files. ACM TODS, 4(3), 315:344. W. LITWIN (1980) Linear hashing : a now tool for file and table adressing. 6th Very Large Data Bases Conference, Montréal, Canada, 517:523. Oracle 8i R. CHAPPUIS (2001) Les bases de données Oracle 8i : développement, administration, optimisation, Dunod, Paris, ISBN 2-10-005330-2 G. BRIARD (2000) Oracle 8i sous Linux, Eyrolles, Paris, ISBN 2-212-09135-4 Oracle 9i DELEGLISE D. (2004) Guide du Développeur Oracle, Supinfo, ISBN 2-914835-00-0 G. BRIARD (2001) Oracle 9i sous Linux, Eyrolles, Paris, ISBN 2-212-11026-X Bases de Données avancées IUP Blois, U. Rabelais Tours J.Y. Antoine 42