Bases de Données Avancées

Dimension: px
Commencer à balayer dès la page:

Download "Bases de Données Avancées"

Transcription

1 /210 Bases de Données Avancées Optimisation Thierry Hamon Bureau H202 Institut Galilée - Université Paris 13 & LIMSI-CNRS hamon@limsi.fr INFO2 BDA

2 2/210 Introduction Optimisation d une Application? Quand décide-t on d optimiser? Optimiser quoi? Qui participe, et Comment? Type de l application (TP ou Batch) Intérêt de l application pour l entreprise

3 3/210 Introduction Quand décide-t on d optimiser? Application Batch L application n est pas disponible à partir d une certaine heure Application transactionnelle L utilisateur constate que le temps de réponse est inacceptable (Agence de voyage, application interne, etc.)

4 4/210 Acteurs Qui participe et pourquoi? Adminstrateurs de DB, Développeurs, Ingénieurs Système (IS), Chef de projet Définition de la puissance de la machine (Nombre de processeurs, Capacité mémoire, Espace disque nécessaire en fonction du type de l application) Type du SGBD (Oracle, DB2, etc.) Type de l application (Batch, TP) Langage de programmation utilisé (Java, PL/SQL, etc.)

5 5/210 Acteurs Rôle d un Administrateur d une Base de Données (ABD ou DataBase Administrator DBA) Double rôle de l administrateur d une Base de Données : rôle organisationnel Définition du schéma conceptuel des données Partage de ces données par les utilisateurs rôle technique Mise en œuvre ce schéma partage à l aide des capacités techniques du SGBD

6 6/210 Acteurs Rôle d un Administrateur d une Base de Données rôle technique Installation du SGBD et des outils associés Création de la BD et ses composants conformément à un schéma conceptuel Surveillance de son évolution en modifiant, en créant ou en supprimant certaines structures Gestion des privilèges d accès Attribution et retrait de privilèges d accès aux données aux différents utilisateurs de la base de données

7 7/210 Acteurs Rôle d un Administrateur d une Base de Données rôle technique Amélioration les performances Choix de l implantation optimale des données de façon à obtenir les meilleures performances Identification et prise en compte des utilisations qui seront faites des données Surveillance de la sécurité et la cohérence des données Mise en place de structures et de procédures permettant de faire face à tous les incidents de retrouver l intégrité et la cohérence des données

8 8/210 Acteurs Rôle d un Administrateur d une Base de Données rôle technique Échange les données entre la BD et le monde extérieur Surveillance de l intégration des données en provenance d autres applications ou BD Migration des données de la base vers d autres applications ou BD Outils à utiliser : SQL*DBA, SQL*Loader, SQLPLUS, etc.

9 9/210 Objectifs Qu est-ce qui reste à faire? Les besoins en puissance machine définis Les acteurs administrateurs BD, (IS), développeurs, etc. au courant du projet (impliqués, responsable de la réussite du projet,..) Optimisation de la base et de l application?

10 10/210 Objectifs Sur quoi doit-on focaliser les efforts d optimisation? Partie N 1 : Conception des systèmes d informations et optimisation des applications Lors de la conception des systèmes d informations (si pas trop tard) Optimisation des applications Partie N 2 : Présentation des outils pour assurer le suivi de la base et garantir sa performance Optimisation de la mémoire Optimisation des entrées/sorties Disque Identifier les contentions dans la base de données

11 11/210 Objectifs Sur quoi doit-on focaliser les efforts d optimisation? Partie N 1 : Conception des systèmes d informations et optimisation des applications Lors de la conception des systèmes d informations : (Si pas trop tard) Système non performant : résultat d une mauvaise définition du modèle conceptuel Modèle conceptuel : au moins sous la 3ème forme Normale (3NF) Sauf dans quelque cas (choix volontaire) où la dé-normalisation apporte une certaine performance au système d information (Dataware house) Lors de la conception : tenir compte l accès aux données Analyse de la répartition des données : réplication de données (sur une ou plusieurs bases, etc.) agrégation des tables, pour les systèmes décisionnels etc.

12 11/210 Objectifs Sur quoi doit-on focaliser les efforts d optimisation? Partie N 1 : Conception des systèmes d informations et optimisation des applications Optimisation des applications : l expérience montre que 80% des problèmes de performances des applications, sont résolus, par une optimisation des requêtes SQL Ordonnancer les Batchs et éviter leur exécution pendant des heures ou l utilisation des machine est intense Dispatcher les Batchs les plus consommateurs en puissance machine à des heures différentes

13 12/210 Objectifs Sur quoi doit-on focaliser les efforts d optimisation? Partie N 2 : Présentation des outils pour assurer le suivi de la base et garantir sa performance Optimisation de la mémoire : déterminer la bonne taille des buffers de la base (shared_pool, buffer cache, log buffer, etc) par l utilisation des outils tels que Utlbstat/Utlestat, ou Statpack, etc.

14 12/210 Objectifs Sur quoi doit-on focaliser les efforts d optimisation? Partie N 2 : Présentation des outils pour assurer le suivi de la base et garantir sa performance Optimisation des entrées/sorties Disque : Bien dimensionner les fichiers de la base de données et placer dans des disques prévus pour le type d application (Batch ou TP), pour assurer un temps de réponse acceptable des requêtes adressées à la Base. Ne pas oublier de recenser les disques les plus sollicités, les tablespaces les plus fragmentés, full table scan, etc.

15 12/210 Objectifs Sur quoi doit-on focaliser les efforts d optimisation? Partie N 2 : Présentation des outils pour assurer le suivi de la base et garantir sa performance Identifier les contentions dans la base de données : Etudier les locks, les latches et les wait events au niveaux de la base de données, et les éliminer si possible

16 13/210 Conception des SI et optimisation des Applications Partie 1 Lors de la conception des systèmes d informations Optimisation des applications : L expérience montre que l optimisation des requêtes SQL résout la majorité des problèmes de performances des applications

17 14/210 Conception des SI et optimisation des Applications Objectifs de l optimisation Clarifier et situer les différents paramètres internes des SGBD (relationnel ; objet-relationnel) afin d améliorer leurs performances. Réécrire les codes SQL ; PL/SQL etc.. Restructurer les données, indexer les données, créer des vues matérialisées Partager les données, dupliquer les données sur plusieurs disques, créer des partitions sur les données

18 15/210 Conception des SI et optimisation des Applications Objectifs de l optimisation Intervenants : Administrateurs de Bases de Données (ABD = DBA) Programmeurs d Applications sur SGBD Objectifs : Optimiser un système existant et connaître les impacts de certains paramètres en fonction du type d application sur le système Choisir un SGBD en ayant comme contrainte les critères de performances

19 16/210 Conception des SI et optimisation des Applications Augmentation des performances Pour augmenter les performances trois grandes solutions apparaissent : 1 Première solution (d ordre logique) : optimiser les schémas conceptuel et logique pour qu il colle aux applications 2 Deuxième solution (d ordre physique) : optimiser les paramètres internes du SGBD 3 Autre solution (de type matérielle) : augmenter la puissance machine ou utiliser des ordinateurs spéciaux dédiés à la gestion des données. Cette approche est plus connue sous le nom Machine Bases de Données

20 17/210 Optimisation logique Optimisation logique de la Base de Données Optimisation du Schéma Relationnel Schéma Conceptuel de Données (SCD), obtenu à la phase d analyse une ensemble d Entités et d Associations ou un ensemble de Classes selon le formalisme utilisé En EA, transformation en schéma relationnel (Schéma Logique de Données SLD), qui permet Implantation du SCD dans une BD relationnelle Exploitation par le SGBD et les modules de programmation

21 18/210 Optimisation logique Optimisation logique de la Base de Données Optimisation du Schéma Relationnel Normalisation : processus permettant de s assurer de la Bonne conception du SLD non redondance de ses données Cadre formel pour effectuer la normalisation : la dépendance fonctionnelle les formes normales (1ère FN, 2ème FN, 3ème FN, FNBC, 4ème FN,...)

22 19/210 Optimisation logique Normalisation Exemple Avant normalisation : R e l a t i o n 1 ( A t t r i b u t 1, A t t r i b u t 2,... ) Décomposition de la relation Relation1, en deux ou plusieurs relations qui contiennent moins d anomalies de mises à jour (peu ou pas du tout) : On parle de Décomposition sans perte d information Décomposition sans perte de dépendance fonctionnelle (DF)... Après normalisation : R e l a t i o n 1 1 ( A t t r i b u t 1 1, A t t r i b u t 1 2,... ) R e l a t i o n 2 1 ( A t t r i b u t 2 1, A t t r i b u t 2 2,... )

23 20/210 Optimisation logique Normalisation Les relations obtenues doivent être en 3ème Forme Normale, au moins bon rapport redondance/espace occupé Clé Primaire Pas de DF entre les attributs de la clé primaire ; Pas de DF entre un sous ensemble d attributs de la clé primaire et les attributs qui n appartiennent pas à la clé primaire Pas de DF entre les attributs qui n appartiennent pas à la clé primaire

24 21/210 Optimisation logique Normalisation Illustration Format d une relation bien conçue

25 22/210 Optimisation logique Normalisation Exemple Soit la relation : ADRESSES ( V i l l e, Numéro, Rue, CodePostal ) Décomposition de la relation ADRESSES ( r e l a t i o n en 3ème FN) en deux relations CPR et CPV (en FN de Boyce et Codd) : CPR ( CodePostal, Rue ) CPV ( CodePostal, V i l l e )

26 23/210 Optimisation logique Normalisation Exemple ADRESSES VILLE NUMERO RUE CODE POSTAL Paris 6 Rue de la Rosière Paris 16 Rue de la Rosière Paris 51 Rue des Entrepreneurs Paris 55 Rue des Entrepreneurs Paris 8 Avenue des Champs Elysées Epinay sur Seine 23 Boulevard Foch CPR CPV CODE POSTAL RUE CODE POSTAL VILLE Rue de la Rosière Paris Rue des Entrepreneurs Paris Avenue des Champs Elysées Epinay sur Seine Boulevard Foch

27 24/210 Optimisation logique Normalisation Exemple Un client a une adresse : SLD version 1 CLIENT ( CodeCli, NomCli, PrénomCli, Numéro, Rue, CodePostal, V i l l e ) SELECT FROM CLIENT ; SLD version 2 CLIENT ( CodeCli, NomCli, PrénomCli, Numéro, A d r C l i ) ADRCPR ( AdrCli, Rue, CodePostal ) ADRCPV ( CodePostal, V i l l e ) SELECT FROM CLIENT, ADRCPR, ADRCPV WHERE CLIENT. A d r C l i=adrcpr. A d r C l i AND ADRCPR. CodePostal=ADRCPV. CodePostal ;

28 25/210 Optimisation logique Bilan Un schéma relationnel normalisé contiendra donc un nombre plus important de relations (de tables) pourra ainsi pénaliser certaines requêtes, qui seront obligées de procéder à des jointures plus nombreuses sur la base Or La jointure est une opération très coûteuse Les opérations binaires (qui portent sur deux tables) peuvent être coûteuses

29 26/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée Technique d optimisation des requêtes d interrogation Introduction volontairement de redondances dans le schéma logique relationnel Cette redondance est dite calculée car elle tient compte des besoins des modules de traitement des données de leurs exigences en terme de temps de réponse

30 27/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée Deux méthodes de réalisation de la redondance calculée : le stockages des données déductibles la dé-normalisation

31 28/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : stockages des données déductibles Données déductibles les résultats des requêtes les plus fréquentes des statistiques historiques des données issues de calculs complexes

32 29/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : stockages des données déductibles Dans les trois cas, stockage des données, physiquement dans la base (sous la forme de Tables/Vues ou de Colonnes) Avantage du stockage physique : éviter leur re-génération en cas de besoin Inconvénient de la redondance : 1 Place occupée par les données redondante 2 Nécessité de traitements supplémentaires pour les opérations de mises à jour 3 Risque d incohérence

33 30/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : stockages des données déductibles Exemple de requête fréquente Base de données SportAct : Adhérents à des centres sportifs CENTRE ( NumC, NomC, V i l l e C, C o u t i n s c ) ESTMEMBRE ( NumA, NumC, D a t e i n s c ) Requête fréquente : Nombre d inscrits dans un centre c? SELECT C.NumC, C.NomC, COUNT(E.NumA) FROM CENTRE C, ESTMEMBRE E WHERE C.NumC = E.NumC AND C.NumC= c GROUP BY C.NumC ;

34 30/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : stockages des données déductibles Exemple de requête fréquente Création d une nouvelle colonne NbrInscr dans la table CENTRE : CENTRE ( NumC, NomC, VilC, Coutinsc, N b r I n s c r ) Nouvel ordre SQL : SELECT NumC, NomC, N b r I n s c r FROM CENTRE WHERE NumC=c ; Suppression de 2 opérations très coûteuses : Une jointure en moins Un groupement en moins

35 30/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : stockages des données déductibles Exemple de requête fréquente Impact sur le reste de la base de données Prise en compte de cette nouveauté par les opérations de mises à jours de la table ESTMEMBRE Modification de la colonne NbrInscr à chaque insertion ou suppression d inscription La cohérence est affectée si on ne le fait pas

36 30/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : stockages des données déductibles Exemple de requête fréquente Chaque opération INSERT / DELETE implique une opération UPDATE INSERT INTO ESTMEMBRE VALUES (...) ; doit être accompagnée par UPDATE CENTRE SET N b r I n s c r=n b r I n s c r+1 ; DELETE FROM ESTMEMBRE WHERE... ; doit être accompagnée par UPDATE CENTRE SET N b r I n s c r=n b r I n s c r 1 ;

37 31/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : stockages des données déductibles Exemple de Statistiques Historiques Requête : Nombre d inscrits par centre et par mois? Objectif : éviter le recalcul à chaque fois du nombre d inscrits par centre et par mois Solution : création d une nouvelle table/vue STAT_MENS_INSCR STAT MENS INSCR ( NumC, Mois, N b r I n s c r ) Nécessité d un nouveau traitement mensuel pour l actualiser avec les statistiques du mois écoulé

38 32/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : stockages des données déductibles Résultat de calcul complexe Soit la base de données : CLIENT ( CodeCli, NomCli,... ) ARTICLE ( CodeArt, LibArt,..., P r i x A r t ) COMMANDE ( NumCom, CodeCli, DateCom ) DETAILCOM ( NumCom, CodeArt, QtéComDée ) Requête : Montant de la commande?

39 32/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : stockages des données déductibles Résultat de calcul complexe Obtention du montant de la commande : SELECT C.NumCom, SUM(D. QtéComDée A. P r i x A r t ) AS Montant FROM COMMANDE C, ARTICLE A, DETAILCOM D WHERE C. NumCom=D. NumCom AND D. CodeArt=A. CodeArt GROUP BY C. NumCom ; Gain d opération avec la création de la colonne Montant dans la table COMMANDE COMMANDE ( NumCom, CodeCli, DateCom, Montant ) SELECT NumCom, Montant FROM COMMANDE ;

40 33/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : dé-normalisation Autre méthode d optimisation des interrogations Transformer, si besoin est, une table de la 3ème FN en 2ème FN ou en la 1ère FN Objectif : éviter des jointures successives pouvant être coûteuses en performances

41 34/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : dé-normalisation Exemple Soit la table ARTICLE ( CodeArt, LibArt,..., P r i x A r t ) COMMANDE ( NumCom, CodeCli, DateCom ) DETAILCOM ( NumCom, CodeArt, QtéComDée, P r i x A r t ) DETAILCOM passe de la 3ème FN à la 1ère FN Requête : Montant de la commande? SELECT NumCom, SUM( QtéComDée P r i x A r t ) FROM DETAILCOM GROUP BY NumCom ; AS Montant

42 35/210 Optimisation logique Optimisation logique de la Base de Données Redondance calculée : dé-normalisation Inconvénients de la dé-normalisation : identiques à ceux du stockage des données déductibles Place supplémentaire Pénalisation des traitements d insertion et de suppression Risque d incohérence Nécessite la création de déclencheurs (triggers)

43 36/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Requête SQL : ordre passé au SGBD pour lui demander de rechercher des données spécifiées dans la requête (sans expliciter le comment) SQL est non procédural SELECT / FROM / WHERE / GROUP BY / HAVING / ORDER BY DISTINCT SUM / MIN / MAX / AVG / COUNT IN / NOT IN / LIKE / NOT LIKE / EXISTS / NOT EXISTS / = INSERT / DELETE / UPDATE CREATE / TABLE / VIEW / INDEX

44 37/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Traduction d une requête exprimée en langage naturel en un ensemble d ordres SQL Plusieurs agencements sont souvent possibles : au niveau de l ordre dans lequel les conditions sont exprimées dans la clause WHERE : WHERE c o n d i t i o n 1 AND c o n d i t i o n 2 WHERE c o n d i t i o n 2 AND c o n d i t i o n 1

45 37/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Traduction d une requête exprimée en langage naturel en un ensemble d ordres SQL Plusieurs agencements sont souvent possibles : au niveau des opérations algébriques Possibilité d utiliser plusieurs méthodes différentes pour exprimer la même chose La jointure : possibilité d exprimer l opération de plusieurs manières différentes R = Jointure ( R1, R2, {R1.A=R2.A} ) = Jointure ( R2, R1, {R2.A=R1.A} ) SELECT FROM R1, R2 WHERE R1. A = R2. A ; SELECT FROM R2, R1 WHERE R2. A = R1. A ;

46 38/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Expression de la jointure Méthode prédicative SELECT FROM R1, R2 WHERE R1. A=R2. A ; Méthodes ensemblistes SELECT FROM R1 WHERE A IN (SELECT A FROM R2 ) ; SELECT FROM R1 WHERE A =ANY (SELECT A FROM R2 ) ; SELECT FROM R1 WHERE EXISTS (SELECT FROM R2 WHERE R1. A=R2. A ) ; SELECT FROM R1 WHERE 0 < (SELECT COUNT( ) FROM R2 WHERE R1. A=R2. A ) ;

47 39/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Exemple de durée d exécution SQLPlus SET TIMING ON Exécution de la requête ; SELECT... FROM... Oracle vous donne le temps écoulé Méthode prédicative : s e l e c t from a l l t a b l e s t1, a l l c o n s t r a i n t s t2 where t1. table name = t2. table name ; temps CPU: u n i t é s u n i t é s s e l e c t from a l l c o n s t r a i n t s t1, a l l t a b l e s t2 where t1. table name = t2. table name ; temps CPU: u n i t é s u n i t é s

48 40/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Exemple de durée d exécution SQLPlus Méthodes ensemblistes : s e l e c t from a l l c o n s t r a i n t s where t a b l e n a m e i n ( s e l e c t t a b l e n a m e from a l l t a b l e s ) ; temps CPU: u n i t é s u n i t é s s e l e c t from a l l c o n s t r a i n t s where t a b l e n a m e = any ( s e l e c t t a b l e n a m e from a l l t a b l e s ) ; temps CPU: u n i t é s u n i t é s s e l e c t from a l l c o n s t r a i n t s t1 where e x i s t s ( s e l e c t from a l l t a b l e s t2 where t1. t a b l e n a m e = t2. t a b l e n a m e ) ; temps CPU: u n i t é s u n i t é s

49 41/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Traduction d une requête exprimée en langage naturel en un ensemble d ordres SQL : Plusieurs agencements sont souvent possibles Possibilité d utiliser plusieurs méthodes différentes pour exprimer la même chose La différence : R = Différence ( R1, R2 ) SELECT FROM R1 MINUS SELECT FROM R2 ;

50 42/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Expression de la différence SELECT A FROM R1 MINUS SELECT A FROM R2 ; SELECT A FROM R1 WHERE A NOT IN (SELECT A FROM R2 ) ; SELECT A FROM R1 WHERE NOT EXISTS (SELECT A FROM R2 WHERE R1. A=R2. A ) ; SELECT A FROM R1 WHERE 0 = (SELECT COUNT( ) FROM R2 WHERE R1. A=R2. A ) ;

51 43/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Utilisation des vues Mauvais code : S e l e c t e. from EMP e where e. s a l a r y > ( s e l e c t avg ( s a l a r y ) from EMP i where i. d e p i d = e. d e p i d ) ; Bon code S e l e c t e. from EMP e, ( S e l e c t i. d e p i d DEP, avg ( i. s a l a r y ) SAL from EMP i group by i. d e p i d ) EMP VUE where e. d e p i d = EMP VUE. d e p i d and e. s a l a r y > EMP VUE. SAL ;

52 44/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Vues matérialisées Présentation des vues matérialisées : Création d une vue physique d une table Duplication des données Définition de vues matérialisées à partir de tables, de vues, et de vues matérialisées Possibilité de décalage entre la table maître et la vue matérialisée : gestion de la fraicheur des données de la vue matérialisée (refresh)

53 45/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Vues matérialisées Utilisation des vues matérialisées : Optimisation/amélioration des performances Ré-écriture des requêtes portant sur des tables select particulièrement complexe ou lourd réplication de table

54 46/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Exemple d utilisation de vues matérialisées Soit le schéma logique de données suivant :

55 47/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Exemple d utilisation de vues matérialisées Soit la requête Q : Total des ventes des magasins en France ou en Belgique -pour la période de 2001 à par ville et année s e l e c t ADRVILLEMAG, ANNEET, sum(montantvente) as Montant from VENTES, MAGASINS, TEMPS where VENTES.NUMMAG=MAGASINS.NUMMAG and VENTES. IDTEMPS=TEMPS. IDTEMPS and ( upper (MAGASINS. ADRPAYSMAG)= FRANCE or upper (MAGASINS. ADRPAYSMAG)= BELGIQUE ) and TEMPS. ANNEET between 2001 and 2003 group by ADRVILLEMAG, ANNEET ;

56 48/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Exemple d utilisation de vues matérialisées V1 : Total des ventes des magasins à partir de 2002, par ville et année c r e a t e m a t e r i a l i z e d view v1 ( V i l l e, Annee, Montant1 ) as ( s e l e c t ADRVILLEMAG, ANNEET, sum (MONTANTVENTE) from VENTES, MAGASINS, TEMPS where VENTES.NUMMAG=MAGASINS.NUMMAG and VENTES. IDTEMPS=TEMPS. IDTEMPS and TEMPS. ANNEET >= 2002 group by ADRVILLEMAG, ANNEET ) ;

57 48/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Exemple d utilisation de vues matérialisées V2 : Total des ventes des magasins en France par ville, année et mois c r e a t e m a t e r i a l i z e d view v2 ( V i l l e, Annee, Mois, Montant2 ) as ( s e l e c t ADRVILLEMAG, ANNEET, MOIST, sum (MONTANTVENTE) from VENTES, MAGASINS, TEMPS where VENTES.NUMMAG=MAGASINS.NUMMAG and VENTES. IDTEMPS=TEMPS. IDTEMPS and upper (MAGASINS.ADRPAYSMAG)= FRANCE group by ADRVILLEMAG, ANNEET, MOIST ) ;

58 48/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Exemple d utilisation de vues matérialisées V3 : Total des ventes des magasins en Belgique avant 2001 par ville, année et mois c r e a t e m a t e r i a l i z e d view v3 ( V i l l e, Annee, Mois, Montant3 ) as ( s e l e c t ADRVILLEMAG, ANNEET, MOIST, sum (MONTANTVENTE) from VENTES, MAGASINS, TEMPS where VENTES.NUMMAG=MAGASINS.NUMMAG and VENTES. IDTEMPS=TEMPS. IDTEMPS and upper (MAGASINS.ADRPAYSMAG)= BELGIQUE and TEMPS. ANNEET <= 2001 group by ADRVILLEMAG, ANNEET, MOIST ) ;

59 49/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Exemple d utilisation de vues matérialisées Soit la requête Q qui utilise des vues matérialisées : s e l e c t ADRVILLEMAG, annee, Montant1 from v1, ( s e l e c t d i s t i n c t ADRVILLEMAG from MAGASINS where upper (MAGASINS.ADRPAYSMAG)= FRANCE or upper (MAGASINS.ADRPAYSMAG)= BELGIQUE ) where v1. v i l l e = s1. ADRVILLEMAG and annee <= 2003 s1 union s e l e c t v i l l e, annee, sum ( Montant2 ) from v2 where annee =2001 group by v i l l e, annee union s e l e c t s2. ADRVILLEMAG, Annee, sum ( Montant3 ) from v3, ( s e l e c t d i s t i n c t ADRVILLEMAG from MAGASINS) s2 where v3. v i l l e = s2. ADRVILLEMAG and annee = 2001 group by s2. ADRVILLEMAG, annee ;

60 50/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Utilisation de vues matérialisées Inconvénients : Résultat de la requête stocké et valable à un instant t en fonction des paramètres, la vue matérialisée sera tenue à jour ou non quand la table change Entretien des vues en temps réel : coûteux (et peu souvent mis en œuvre)

61 51/210 Optimisation logique Optimisation logique de la Base de Données Optimisation des ordres SQL Utilisation de vues matérialisées Avantages Simple réécriture de requête et exécution de requêtes imbriquées Lorsqu il n est nécessaire de disposer des données en temps réel, économie d interrogation Exemple : analyse de chiffres économiques de la veille données figées intérêt à stocker des résultats (qui ne changeront plus!) Utilisation dans les datawarehouse : problématique de performances

62 52/210 Optimisation physique Gestion physique des données Adaptation et enrichissement du SLD pour tenir compte des spécificités du SGBD des performances des traitements et de la sécurité A ce stade d élaboration du schéma physique de données, on dispose : du SLD normalisé ou non du schéma physique de traitement (description détaillée des modules)

63 53/210 Optimisation physique Gestion physique des données Résultat : Schéma Physique des Données (SPD) représentation de la structure définitive de la base de données telle qu elle doit être implantée prise en compte des caractéristiques technique du SGBD et du matériel des exigences en interfaces et en performances des modules de programmation Si le matériel ou le SGBD change alors il faut changer le SPD (les exigences changent)

64 54/210 Optimisation physique Gestion physique des données Etat des lieux : des tables en 3ème FN, ou autre etc. bien conçues Objectifs : optimisation des accès en choisissant les colonnes qui doivent être indexées introduction (éventuellement) de redondances calculées définition de vues standards et des vues matérialisées définition des contraintes d intégrité et des déclencheurs sur les tables

65 55/210 Optimisation physique Gestion physique des données création des tables et des colonnes techniques définition des droits d accès aux données répartition des tables sur les sites (en cas de BD réparties) calcul des paramètres de stockage des tables et des index etc.

66 56/210 Optimisation physique Gestion physique des données Colonnes à indexer les clés primaires (concaténées ou pas) pour garantir l unicité et accélérer les recherches INDEX UNIQUE les clés étrangères (concaténées ou pas) pour accélérer les jointures INDEX NOT UNIQUE les colonnes servant de critères de recherche (apparaissent souvent dans la clause WHERE de SQL) INDEX NOT UNIQUE

67 57/210 Optimisation physique Gestion physique des données Colonnes à indexer Remarque : Un vrai SGBD se caractérise par l emploi d un SEUL fichier pour y stocker la BD (ou éventuellement quelques fichiers si la BD est trop importante) Un faux SGBD Relationnel emploie un fichier pour y stocker une table dans ce cas la gestion physique des données est assurée par le système d exploitation, interdisant tout paramètre d optimisation

68 58/210 Indexation Gestion des méthodes d accès aux données Méthodes d accès : Méthode séquentielle Méthodes basées sur les index : Index hiérarchisé, Arbre-B (B-tree), Arbre-B+, Arbre-B+*,... Méthode de hachage Mise en cluster

69 59/210 Indexation Données (110 octets) Index (14 octets) Clé primaire Info. compl. Clé primaire Adresse physique (10 octets) (100 octets) (10 octets) (4 octets) 10 info1 15 info2 20 info3 30 info4 40 info info k 1610 info n

70 60/210 Indexation Données (110 octets) Index (14 octets) Clé primaire Info. compl. Clé primaire Adresse physique (10 octets) (100 octets) (10 octets) (4 octets) 10 info1 15 info2 20 info3 30 info4 40 info5 50 info6 55 info7 77 info8 80 info9 10 info info info k 1610 info n

71 61/210 Indexation Taille d une Table & Taille d un Index Exemple Table (110 octets par enregistrement) : Clé primaire (10 octets), Informations complémentaires (100 octets) Index (14 octets par enregistrement) : Clé primaire (10 octets), Adresse Physique (4 octets) Bloc de 512 octets Nombre d enregistrements de l ordre de

72 62/210 Indexation Taille d une Table & Taille d un Index Exemple Pour les données : Pour un nombre entier d enregistrements par bloc (512/110) Nombre maximal d enregistrements par bloc est 4 Il faudrait donc ( /4) = blocs de données Pour les index : Pour un nombre entier d enregistrements par bloc (512/14) Nombre maximal d enregistrements par bloc est 36 Il faudrait donc ( /36) = 2778 blocs d index

73 63/210 Indexation Index type B-arbre (B-tree) Exemple

74 64/210 Indexation Index Différents types d index : Logique Index simple (sur une colonne) Index concaténé (sur plusieurs colonne) Index unique (colonne ne comportant pas de doublon) Index non unique (colonne comportant des doublons) Physique B-tree Bitmap Hash

75 65/210 Indexation Index Exemples Index simple create index i d x n o f o u r on t t f o u r ( n o f o u r ) Index concaténé create index idx commande on ( n o f o u r, n c l i e n t )

76 66/210 index unique Indexation Index Exemples create unique index i d x u n i q u e on tab ( c o l 1 ) t a b l e s p a c e t b s t a b 1 p c t f r e e 40 p c t u s e d 60 i n i t r a n s 10 maxtrans 100 index non unique create index i d x n o n u n i q u e on tab ( c o l 1 ) t a b l e s p a c e t b s t a b 1 p c t f r e e 40 p c t u s e d 60 i n i t r a n s 10 maxtrans 100 n o l o g g i n g

77 67/210 Indexation Index manipulations Modification d un Index Alter Index schema. name index i n i t r a n s i n t e g e r maxtrans i n t e g e r s t o r a g e ( i n i t i a l 100M next 20M) l o g g i n g n o l o g g i n g Reconstruction d un Index Alter Index p1. IDX FOUR R e b u i l d T ablespace TBS INDEXES

78 68/210 Indexation Index Manipulation Modification d un Index Alter Index schema. name index i n i t r a n s i n t e g e r maxtrans i n t e g e r s t o r a g e ( i n i t i a l 100M next 20M) l o g g i n g n o l o g g i n g Catalogue Oracle pour la gestion des Index et des Clusters Select from s y s. d b a u s e r s ; Select from s y s. d b a i n d e x c o l u m n s ; Select from s y s. d b a c l u s t e r s ; Select from s y s. d b a c l u c o l u m n s ;

79 69/210 Indexation Index Bitmap Création d un index Bitmap (pour faible cardinalité) create bitmap index on t t f o u r ( d t l i v r a i s o n ) t a b l e s p a c e TBS Fournisseur ;

80 70/210 Indexation INDEX HASH Cluster Création du cluster Create c l u s t e r c l i e n t h a s h ( Num cli number ( 9 ) s i z e 512 HASHKEY 500 s t o r a g e ( i n i t i a l 2M next 1M) Mise en cluster d une table Create table C l i e n t ( N c l i number, nom varchar2 ( 5 0 ) ) Cluster c l i e n t h a s h ( N c l i ) ; Création de l index sur le cluster Create index I d x C l i e n t on c l u s t e r c l i e n t h a s h ;

81 71/210 Indexation INDEX B-TREE Préparation de l utilisation de B-Tree (à utiliser dans le cas d une forte cardinalité) SQL> DESC t10man copy NAME NULL? TYPE EMPNO NOT NULL NUMBER ENAME VARCHAR2( 2 0 ) JOB VARCHAR2( 1 8 ) MGR NUMBER( 4 ) HIREDATE DATE SAL NUMBER( 7, 2 ) COMM NUMBER( 7, 2 ) DEPTNO NUMBER( 2 ) EMPNO r a n g e s from 1 to I use t h i s t a b l e to c r e a t e MGR row w i t h c a r d i n a l i t y 4. I use MOD function. MOD (m, n ) f u n c t i o n r e t u r n s a r e m a i n i n g o f m d i v i d e d by n. I a l s o use to char to make column length even. SQL to make data i n MGR row be c a r d i n a l i t y 4 SQL> CREATE TABLE T10MAN COPY 4 AS SELECT EMPNO,ENAME, JOB, to char (mod(empno, 4 ), ) MGR, HIREDATE, SAL,COMM,DEPTNO FROM T10MAN ORG ; Table created , , , and a r e scanned by turns

82 72/210 Indexation INDEX B-TREE Création d un index B-Tree SQL> SELECT MGR FROM T10MAN COPY 4 WHERE ROWNUM < 10 ; MGR SQL> CREATE INDEX BTREE 4 ON T10MAN COPY 4(MGR) STORAGE ( INITIAL 2K NEXT 2K PCTINCREASE 0 MAXEXTENTS UNLIMITED) ;

83 73/210 Optimisation des requêtes Optimisation des requêtes Exemples d optimisation Algorithmique Algorithme des boucles imbriquées de la jointure BI-passe Algorithme Multi-Passes de la jointure MP

84 74/210 Optimisation des requêtes Jointure Bi-passe Hashage de deux tables en paquets de mémoire virtuelle Début A l g o r i t h m e BI : POUR i DE 1 à n1 FAIRE DEBUT LIRE Page de R1 POUR j de 1 à n2 FAIRE DEBUT LIRE Page de R2 S I R1. A=R2. A ALORS C r é e r r é s u l t a t FINSI FIN FIN Fin A l g o r i t h m e BI :

85 75/210 Optimisation des requêtes Jointure Multi-Passe Début A l g o r i t h m e MP : POUR i DE 1 à m FAIRE DEBUT CHARGE MEMOIRE( ) POUR j de 1 à n2 FAIRE DEBUT LIRE Page de R2 S I R1. A=R2. A ALORS C r é e r r é s u l t a t FINSI FIN FIN CHARGER MEMOIRE( ) POUR k DE 1 à m FAIRE DEBUT LIRE Page de R1 FIN Fin A l g o r i t h m e MP :

86 76/210 Optimisation des requêtes Optimisation des requêtes Visualisation : Expression Algébrique Arbre algébrique Plan d exécution de la requête

87 77/210 Plan d exécution Plan d exécution Sous Oracle, possibilité de connaître pour chaque requête son plan d exécution Consultation du plan d exécution selon lequel une instruction SQL sera exécutée par le SGBD Oracle dans une table système Stockage des plans d exécution dans une table PLAN_TABLE dont le script de création (fourni par Oracle) se trouve dans $ORACLE_HOME/rdbms/admin/utlxplan.sql Etapes en vue de la consultation : création la table de nom PLAN_TABLE Eventuellement la détruire et la recréer exécuttion d une commande EXPLAIN PLAN sur une requête Stockage (description) du plan d exécution de cette dernière) dans la table PLAN_TABLE Interrogation de la table PLAN_TABLE

88 78/210 Plan d exécution Exécution d une commande EXPLAIN PLAN sur une requête EXPLAIN PLAN SET s t a t e m e n t i d= exemple1 // i d e n t i f i a n t FOR // exemple de r e q u ê t e SELECT FROM WHERE ; Exemple : EXPLAIN PLAN SET s t a t e m e n t i d = r e q u e t e 1 FOR s e l e c t from e l e v e s where nom l i k e DUPON% ;

89 79/210 Plan d exécution Affichage du plan d exécution Interrogation de la table PLAN_TABLE SELECT LPAD(,2 (LEVEL 1 ) ) o p e r a t i o n o p t i o n s object name Plan d e x é c u t i o n FROM p l a n t a b l e START WITH i d = 0 AND s t a t e m e n t i d = r e q u e t e 1 CONNECT BY PRIOR i d = p a r e n t i d AND s t a t e m e n t i d = r e q u e t e 1 ; Résultat affiché : Plan d exécution SELECT STATEMENT TABLE ACCESS BY INDEX ROWID ELEVES INDEX RANGE SCAN I_NOM

90 80/210 Plan d exécution Remarques et explications Représentation d une requête par un arbre Sous Oracle, possibilité de représentation et de manipulation de données ayant une structure de données récursive (arbre) par une représentation tabulaire et avec la commande SQL : SELECT... FROM...WHERE... CONNECT BY PRIOR c o l o n n e o p é r a t e u r c o l o n n e [CONNECT BY c o l o n n e o p é r a t e u r PRIOR c o l o n n e ] START WITH... LEVEL... Extensible des données quelconques

91 81/210 Plan d exécution Exemples de parcours de structure de données de type récursif Structures de données récursives de type Arbres Exemples : Arbre Généalogique Nomenclature d un produit (Composé, Composant) Oracle offre la commande CONNECT BY SELECT... FROM...WHERE... CONNECT BY PRIOR c o l o n n e o p é r a t e u r c o l o n n e CONNECT BY c o l o n n e o p é r a t e u r PRIOR c o l o n n e START WITH LEVEL

92 82/210 Plan d exécution Structures hiérarchiques, arborescentes Arbre Généalogique Oracle permet la représentation et la manipulation des données ayant une structure arborescente par le modèle relationnel par exemple c r e a t e t a b l e PERSONNES ( NUMERO number ( 7 ), NOM varchar ( 1 5 ), PRENOM varchar ( 1 5 ), DATENAISSANCE date, SEXE char ( 1 ), PERE number ( 7 ), MERE number ( 7 ), c o n s t r a i n t PK PERSONNES p r i m a r y key (NUMERO), constraint FK PERSONNES PERE PERSONNES foreign key (PERE) r e f e r e n c e s PERSONNES, constraint FK PERSONNES MERE PERSONNES foreign key (MERE) r e f e r e n c e s PERSONNES, c o n s t r a i n t CK SEXE PERSONNES check (SEXE i n ( M, F ) ) ) ;

93 83/210 Optimisation des requêtes Optimisation des requêtes Requête simple sur une table non indexée DELETE p l a n t a b l e ; // ( l a t a b l e é t a n t c r é é e une f o i s, i l s u f f i t de l a v i d e r ) EXPLAIN PLAN SET s t a t e m e n t i d = r e q u e t e 1 FOR s e l e c t from e l e v e s where nom l i k e DUPON% ; SELECT LPAD(, 2 ( LEVEL 1 ) ) o p e r a t i o n o p t i o n s o b j e c t n a m e Plan d e x é c u t i o n FROM p l a n t a b l e START WITH i d = 0 AND s t a t e m e n t i d = r e q u e t e 1 CONNECT BY PRIOR i d = p a r e n t i d AND s t a t e m e n t i d = r e q u e t e 1 ; Plan d exécution SELECT STATEMENT TABLE ACCESS BY INDEX ROWID ELEVES INDEX RANGE SCAN I_NOM

94 84/210 Optimisation des requêtes Optimisation des requêtes Requête simple sur une table indexée drop i n d e x i nom ; c r e a t e i n d e x i nom on e l e v e s (nom ) ; EXPLAIN PLAN SET s t a t e m e n t i d = r e q u e t e 1 FOR s e l e c t from e l e v e s where nom l i k e DUPON% ; SELECT LPAD(, 2 ( LEVEL 1 ) ) o p e r a t i o n o p t i o n s o b j e c t n a m e Plan d e x é c u t i o n FROM p l a n t a b l e START WITH i d = 0 AND s t a t e m e n t i d = r e q u e t e 1 CONNECT BY PRIOR i d = p a r e n t i d AND s t a t e m e n t i d = r e q u e t e 1 ; Plan d exécution SELECT STATEMENT TABLE ACCESS BY INDEX ROWID ELEVES INDEX RANGE SCAN I_NOM

95 85/210 Optimisation des requêtes Optimisation des requêtes Comparaison Requête simple sur une table non indexée : Plan d exécution SELECT STATEMENT TABLE ACCESS BY INDEX ROWID ELEVES INDEX RANGE SCAN I_NOM Requête simple sur une table indexée : Plan d exécution SELECT STATEMENT TABLE ACCESS BY INDEX ROWID ELEVES INDEX RANGE SCAN I_NOM

96 86/210 drop i n d e x i nom ; d e l e t e p l a n t a b l e ; Optimisation des requêtes Optimisation des requêtes Requête avec un order by sur une table non indexée EXPLAIN PLAN SET s t a t e m e n t i d = r e q u e t e 2 FOR s e l e c t from e l e v e s where nom l i k e DUPON% o r d e r by nom ; SELECT LPAD(, 2 ( LEVEL 1 ) ) o p e r a t i o n o p t i o n s o b j e c t n a m e Plan d e x é c u t i o n FROM p l a n t a b l e START WITH i d = 0 AND s t a t e m e n t i d = r e q u e t e 2 CONNECT BY PRIOR i d = p a r e n t i d AND s t a t e m e n t i d = r e q u e t e 2 ; Plan d exécution SELECT STATEMENT SORT ORDER BY TABLE ACCESS FULL ELEVES

97 87/210 Optimisation des requêtes Optimisation des requêtes Requête avec un order by sur une table indexée drop i n d e x i nom ; c r e a t e i n d e x i nom on e l e v e s (nom ) ; d e l e t e p l a n t a b l e ; EXPLAIN PLAN SET s t a t e m e n t i d = r e q u e t e 2 FOR s e l e c t from e l e v e s where nom l i k e DUPON% o r d e r by nom ; SELECT LPAD(, 2 ( LEVEL 1 ) ) o p e r a t i o n o p t i o n s o b j e c t n a m e Plan d e x é c u t i o n FROM p l a n t a b l e START WITH i d = 0 AND s t a t e m e n t i d = r e q u e t e 2 CONNECT BY PRIOR i d = p a r e n t i d AND s t a t e m e n t i d = r e q u e t e 2 ; Plan d exécution SELECT STATEMENT SORT ORDER BY TABLE ACCESS BY INDEX ROWID ELEVES INDEX RANGE SCAN I_NOM

98 88/210 Optimisation des requêtes Optimisation des requêtes Comparaison Requête avec un order by sur une table non indexée Plan d exécution SELECT STATEMENT SORT ORDER BY TABLE ACCESS FULL ELEVES Requête avec un order by sur une table indexée Plan d exécution SELECT STATEMENT SORT ORDER BY TABLE ACCESS BY INDEX ROWID ELEVES INDEX RANGE SCAN I_NOM

99 89/210 Optimisation des requêtes Optimisation des requêtes Requête de jointure avec les deux tables indexées d e l e t e p l a n t a b l e ; EXPLAIN PLAN SET s t a t e m e n t i d = r e q u e t e 3 FOR s e l e c t nom, prenom, num cours, p o i n t s from e l e v e s e, r e s u l t a t s r where r. n u m e l e v e = e. n u m e l e v e ; SELECT LPAD(, 2 ( LEVEL 1 ) ) o p e r a t i o n o p t i o n s o b j e c t n a m e Plan d e x é c u t i o n FROM p l a n t a b l e START WITH i d = 0 AND s t a t e m e n t i d = r e q u e t e 3 CONNECT BY PRIOR i d = p a r e n t i d AND s t a t e m e n t i d = r e q u e t e 3 ; Plan d exécution SELECT STATEMENT NESTED LOOPS TABLE ACCESS FULL RESULTATS TABLE ACCESS BY INDEX ROWID ELEVES INDEX UNIQUE SCAN PK_ELEVES

100 90/210 Optimisation des requêtes Optimisation des requêtes Requête de jointure avec les deux tables indexées L ordre des 2 tables change d e l e t e p l a n t a b l e ; EXPLAIN PLAN SET s t a t e m e n t i d = r e q u e t e 3 FOR s e l e c t nom, prenom, num cours, p o i n t s from r e s u l t a t s r, e l e v e s e where r. n u m e l e v e = e. n u m e l e v e ; SELECT LPAD(, 2 ( LEVEL 1 ) ) o p e r a t i o n o p t i o n s o b j e c t n a m e Plan d e x é c u t i o n FROM p l a n t a b l e START WITH i d = 0 AND s t a t e m e n t i d = r e q u e t e 3 CONNECT BY PRIOR i d = p a r e n t i d AND s t a t e m e n t i d = r e q u e t e 3 ; Plan d exécution SELECT STATEMENT NESTED LOOPS TABLE ACCESS FULL ELEVES TABLE ACCESS BY INDEX ROWID RESULTATS INDEX RANGE SCAN PK_RESULTATS

101 91/210 Optimisation des requêtes Optimisation des requêtes Comparaison Requête de jointure avec les deux tables indexées Plan d exécution SELECT STATEMENT NESTED LOOPS TABLE ACCESS FULL RESULTATS TABLE ACCESS BY INDEX ROWID ELEVES INDEX UNIQUE SCAN PK_ELEVES Requête de jointure avec les deux tables indexées (L ordre des 2 tables change) Plan d exécution SELECT STATEMENT NESTED LOOPS TABLE ACCESS FULL ELEVES TABLE ACCESS BY INDEX ROWID RESULTATS INDEX RANGE SCAN PK_RESULTATS

102 92/210 Optimisation des requêtes Optimisation des requêtes Requête de jointure avec les deux tables indexées et une sélection d e l e t e p l a n t a b l e ; EXPLAIN PLAN SET s t a t e m e n t i d = r e q u e t e 4 FOR s e l e c t nom, prenom, num cours, p o i n t s from e l e v e s e, r e s u l t a t s r where r. n u m e leve = e. n u m e l e v e and e. n u m e l e v e = 10 ; SELECT LPAD(, 2 ( LEVEL 1 ) ) o p e r a t i o n o p t i o n s o b j e c t n a m e Plan d e x é c u t i o n FROM p l a n t a b l e START WITH i d = 0 AND s t a t e m e n t i d = r e q u e t e 4 CONNECT BY PRIOR i d = p a r e n t i d AND s t a t e m e n t i d = r e q u e t e 4 ;

103 93/210 Optimisation des requêtes Optimisation des requêtes Requête de jointure avec les deux tables indexées et une sélection Plan d exécution SELECT STATEMENT NESTED LOOPS TABLE ACCESS BY INDEX ROWID ELEVES INDEX UNIQUE SCAN PK_ELEVES TABLE ACCESS BY INDEX ROWID RESULTATS INDEX RANGE SCAN PK_RESULTATS

104 94/210 Outils d optimisation Partie 2 Introduction Présentation des outils des méthodes pour assurer le suivi de la base et garantir sa performance

105 95/210 Outils d optimisation Amélioration du Suivi et de la performance de la base 1 Choix de l optimiseur et collecte des statistiques 2 Suivi des indicateurs 3 Outils pour améliorer l optimisation de la base

106 96/210 Optimiseur Oracle Historique de l optimiseur d Oracle Optimiseur Syntaxique Avant la version 7.0 : optimiseur syntaxique (rule-based optimizer) avant la version 7/0 : Hypothèse de base : à partir du moment où une instruction SQL validait une règle, et que le numéro de la règle diminuait, le plan d exécution était réputé meilleur. Fonctionnement : uniquement optimisation du code en utilisant un ensemble de règles internes fixes et en les appliquant à partir d une analyse syntaxique du code

107 97/210 Optimiseur Oracle Historique de l optimiseur d Oracle Optimiseur Syntaxique Limites de l optimiseur syntaxique : incapacité à déterminer la méthode la moins coûteuse Pas usage de type de fonction de coût ou de statistiques Mais, initialement conçu pour les BDD transactionnelles (les Datawarehouses n existaient pas encore)

108 98/210 Optimiseur Oracle Historique de l optimiseur d Oracle Optimiseur Statistique Apparition avec la version 7.0 d Oracle Objectifs : Utilisation d un plus grand nombre d options lors de la construction des plans d exécution du code SQL Mais maturité difficile à atteindre : 7 ans! A partir de Oracle 7.3 : Possibilité de générer et d enregistrer des histogrammes de colonnes Histogrammes de colonnes : Fonctionnalité capable de déterminer la distribution effective des données pour une colonne particulière

109 99/210 Optimiseur Oracle Initialisation des Paramétrage de l Optimiseur Configuration de l instance Oracle à l aide du paramètre OPTIMIZER_MODE Valeur définie dans le fichier init.ora Valeur par défaut : CHOOSE (valeur nécessaire pour l optimisation statistique) Valeur RULE : optimisation syntaxique (rule-based optimizer) Optimisation du code en utilisant un ensemble de règles internes fixes telles que : Accès par l intermédiaire d un index composite avec toutes les clés contenues dans la clause where Accès par l intermédiaire d un index sur une colonne, etc. Autres valeurs possibles (selon les versions d oracle) : FIRST_ROWS, ALL_ROWS

110 100/210 Optimiseur Oracle Initialisation des Paramétrage de l Optimiseur Modification du paramètre au niveau session à l aide de la commande suivante : Alter s e s s i o n set o p t i m i z e r m o d e=f i r s t r o w s ;

111 101/210 Optimiseur Oracle Mode CHOOSE de l Optimiseur Obejectif de l optimiseur : tenter de tout exécuter en mémoire centrale et donc diminuer au maximum les E/S (hit Ratio) Utilisation des calculs statistiques du catalogue Oracle (dba_tables, dba_indexes, les vues V$, etc...) pour générer le plan d exécution des requêtes

112 102/210 Optimiseur Oracle Mode CHOOSE de l Optimiseur En mode CHOOSE, la présence de statistiques dans le dictionnaire détermine si l optimiseur statistique est utilisé Pas de mise à jour régulière des catalogues par Oracle Le DBA qui doit donc s en charger Récupération de la date de dernier calcul des statistiques : Requête dans la vue DBA_TAB_COLUMNS pour afficher l information LAST_ANALYZED s e l e c t owner, table name, l a s t a n a l y z e d from d b a t a b c o l u m n s where l a s t a n a l y z e d > 01 JAN 00 ;

113 103/210 Statistiques Collecte des statistiques Calcul des statistiques d objets : Utilisation de la commande ANALYZE pour : collecter ou supprimer des statistiques des tables (ou partition de table), d index (ou partition d index), cluster,... valider la structure des tables (ou partition de table), d index (ou partition d index), cluster,... identifier des lignes migrées ou chainées d une table d un cluster,...

114 104/210 Statistiques Collecte des statistiques d une table Analyse statistique d une partition (estimation sur la totalité de la partition) ANALYZE TABLE emp PARTITION ( p1 ) COMPUTE STATISTICS ; Analyse statistique et validation de la structure d une table ANALYZE TABLE emp VALIDATE STRUCTURE; Analyse statistique d une partie d une table (exemple 33 %) ANALYZE TABLE emp ESTIMATE STATISTICS SAMPLE 33 p e r c e n t ; Analyse statistique d une table ainsi que de ses indexes ANALYZE TABLE emp COMPUTE STATISTICS FOR ALL INDEXED COLUMNS;

115 105/210 Statistiques Collecte des statistiques d une Index Analyse statistique et validation de la structure d un index ANALYZE INDEX p a r t s i n d e x VALIDATE STRUCTURE; Analyse statistique ( sur la totalité de l index) ANALYZE INDEX i n d x 1 COMPUTE STATISTICS ; Analyse statistique d une partie d un index (exemple 44 %) ANALYZE INDEX p a r t s i n d e x ESTIMATE STATISTICS SAMPLE 44 p e r

116 106/210 Statistiques Suppression des statistiques d une table et des index ANALYZE TABLE emp DELETE STATISTICS

117 Statistiques Quelle est la quantité optimale des statistiques nécessaire? 107/210 Si estimation des statistiques des objets en se fondant sur un échantillon (estimate) : La taille de celui-ci doit être appropriée Élément essentiel pour fournir à l optimiseur des statistiques dotées d un bon intervalle de confiance Un niveau de 20% est souvent utilisé et semble approprié Si choix de calculer les statistiques (compute) : Niveau de confiance : 100% Et les statistiques doivent être parfaitement précises Nécessite des ressources et du temps pour réaliser ces calculs

118 Statistiques Quelle est la quantité optimale des statistiques nécessaire? 108/210 S il s agit d Oracle 8i ou supérieur, le package DBMS_STATS pourra analyser les tables en parallèle Si exécution d une commande analyze estimate sur une taille d échantillon > 49% : le module calculera les statistiques sur l ensemble de la table

Bases de Données Avancées

Bases de Données Avancées 1/210 Bases de Données Avancées Optimisation Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin,

Plus en détail

Optimisation SQL. Quelques règles de bases

Optimisation SQL. Quelques règles de bases Optimisation SQL Quelques règles de bases Optimisation des ordres SQL Page 2 1. QUELQUES RÈGLES DE BASE POUR DES ORDRES SQL OPTIMISÉS...3 1.1 INTRODUCTION...3 1.2 L OPTIMISEUR ORACLE...3 1.3 OPTIMISEUR

Plus en détail

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

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

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

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ; RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/88 Bases de Données Avancées Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry Cours 3 Développement d une application BD 1 Plan du cours Gestion de la sécurité des données Optimisation des schémas de bases via la dénormalisation Utilisation de vues Placement du code applicatif dans

Plus en détail

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

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/62 Bases de Données Avancées Introduction & Rappel Conception et Modélisation Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR

Plus en détail

Auto-évaluation Oracle: cours de base

Auto-évaluation Oracle: cours de base Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

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

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

Master Exploration Informatique des données DataWareHouse

Master Exploration Informatique des données DataWareHouse Master Exploration Informatique des données DataWareHouse Binôme Ahmed BENSI Enseignant tahar ARIB SOMMAIRE I. Conception...1 1. Contexte des contrats...1 2. Contexte des factures...1 II. Modèle physique...2

Plus en détail

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

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/116 Bases de Données Avancées Implantation d une BD Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

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

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste Christian Soutou Avec la participation d Olivier Teste SQL pour Oracle 4 e édition Groupe eyrolles, 2004, 2005, 2008, 2010, is BN : 978-2-212-12794-2 Partie III SQL avancé La table suivante organisée en

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Devoir Data WareHouse

Devoir Data WareHouse Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données II Objets avancés dans les bases de données OBJECTIFS 2.1. NOTIONS 2.1.1.

Plus en détail

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Partie 0 : Gestion des tablespace et des utilisateurs... 3 Sommaire Partie 0 : Gestion des tablespace et des utilisateurs... 3 1- Créer deux TableSpaces votre_nom-tbs et Votre_nom-TempTBS :... 3 2. Créer un utilisateur qui porte votre nom :... 3 3. Attribuer à

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

Administration des bases de données relationnelles Part I

Administration des bases de données relationnelles Part I Administration des bases de données relationnelles Part I L administration des bases de données requiert une bonne connaissance - de l organisation et du fonctionnement interne du SGBDR : structures logiques

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

TP11 - Administration/Tuning

TP11 - Administration/Tuning TP11 - Administration/Tuning MIAGE #3-2006/2007 January 9, 2007 1 Architecture physique d une base Oracle 1.1 La structure physique Une base de données Oracle est composé de fichiers (au sens du système

Plus en détail

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

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing Présentation d Oracle 10g Chapitre VII Présentation d ORACLE 10g 7.1 Nouvelles fonctionnalités 7.2 Architecture d Oracle 10g 7.3 Outils annexes 7.4 Conclusions 7.1 Nouvelles fonctionnalités Gestion des

Plus en détail

CHAPITRE 1 ARCHITECTURE

CHAPITRE 1 ARCHITECTURE 07/04/2014 Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ADMINISTRATION ET TUNING DE BASES DE DONNÉES CHAPITRE 1 ARCHITECTURE RESPONSABLE DR K. BOUKHALFA

Plus en détail

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte jean-marie.pecatte@iut-tlse3.fr 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé

Plus en détail

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

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

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Quelques aspects du Relationnel-Objet du SGBD Oracle

Quelques aspects du Relationnel-Objet du SGBD Oracle Département informatique de l IUT (de l université) de Bordeaux Cours de Bases de Données : présentation partielle d un SGBD RO 12 août 2015 Olivier Guibert Quelques aspects du Relationnel-Objet du SGBD

Plus en détail

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

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 13 : Organisation d une base de données, ou comment soulever (un peu) le voile Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les clusters de table

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

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

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

Administration de Bases de Données : Optimisation

Administration de Bases de Données : Optimisation Administration de Bases de Données : Optimisation FIP 2 année Exercices CNAM Paris Nicolas.Travers(at) cnam.fr Table des matières 1 Stockagedans unsgbd 3 1.1 Stockage.............................................

Plus en détail

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

La présente publication est protégée par les droits d auteur. Tous droits réservés. Editeur (Medieninhaber/Verleger) : Markus Winand Maderspergerstasse 1-3/9/11 1160 Wien AUSTRIA Copyright 2013 Markus Winand La présente publication est protégée par les droits d auteur.

Plus en détail

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

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres. INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES Durée : 1h30 Date : 17/05/2006 Coordonnateurs : Amel Bouzeghoub et Bruno Defude Documents autorisés : ceux distribués en cours Avertissements

Plus en détail

Optimisations des SGBDR. Étude de cas : MySQL

Optimisations des SGBDR. Étude de cas : MySQL Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique

Plus en détail

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

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

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

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble. Gaëlle PERRIN SID2 Grenoble Le 10/04/2014 Base de Données (BD) : une grande quantité de données, centralisées ou non, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

TP Bases de données réparties

TP Bases de données réparties page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions

Plus en détail

Bases de Données Réparties

Bases de Données Réparties Bases de Données Réparties Architecture Mise en œuvre Duplication et Réplication Michel Tuffery BDR : Définition Ensemble de bases de données gérées par des sites différents et apparaissant à l utilisateur

Plus en détail

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

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

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

Gestion de base de données

Gestion de base de données Université Libre de Bruxelles Faculté de Philosophie et Lettres Département des Sciences de l Information et de la Communication Gestion de base de données Projet : Take Off ASBL Cours de M. A. Clève STIC-B-505

Plus en détail

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

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 Plan Bases de Données L3 Info Céline Rouveirol 2010-2011 Bases de Données 1 / 77 Sources des transparents Bases de Données 2 / 77 Bases de SQL - M.P. Dorville/F. Goasdoué, LRI, Université Paris Sud - V.

Plus en détail

Compétences Business Objects - 2014

Compétences Business Objects - 2014 Compétences Business Objects - 2014 «Mars-Juin 2014. Réf : Version 1 Page 1 sur 34 Sommaire CONTEXTE DE LA REMISE A NIVEAU EN AUTOFORMATION... 3 1. MODELISATION... 4 1.1 DESCRIPTION FONCTIONNEL DE L'APPLICATION

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

Gestion des utilisateurs et de leurs droits

Gestion des utilisateurs et de leurs droits Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

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

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 Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail

Corrigés détaillés des exercices

Corrigés détaillés des exercices Corrigés détaillés des exercices Diagramme des tables objet La figure suivante vous aidera dans la compréhension des manipulations des objets de la base. Client_type Client num nom adresse {telephone_vry}

Plus en détail

Session S12 Les bases de l optimisation SQL avec DB2 for i

Session S12 Les bases de l optimisation SQL avec DB2 for i Session S12 Les bases de l optimisation SQL avec DB2 for i C. GRIERE cgriere@fr.ibm.com STG Lab Services IBM i Avril 2012 Les fleurs et les requêtes SQL Lorsque l on veut planter de nouvelles fleurs dans

Plus en détail

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K. Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique CHAPITRE 4 ADMINISTRATION ET TUNING DE BASES DE DONNÉES RESPONSABLE DR K. BOUKHALFA POLITIQUES DE CONTRÔLES

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

Plus en détail

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 Loïc Maisonnasse 1 Objectif Ce TD a pour objectif de vous familiariser avec le langage de requêtes SQL. Et de vous apprendre à écrire des requêtes SQL pour

Plus en détail

Du 10 Fév. au 14 Mars 2014

Du 10 Fév. au 14 Mars 2014 Interconnexion des Sites - Design et Implémentation des Réseaux informatiques - Sécurité et Audit des systèmes - IT CATALOGUE DE FORMATION SIS 2014 1 FORMATION ORACLE 10G 11G 10 FEV 2014 DOUALA CAMEROUN

Plus en détail

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

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes) Avant-propos 1. Lectorat 11 2. Pré-requis 12 3. Objectifs 12 4. Environnement technique 13 Choisir la bonne architecture matérielle 1. Introduction 15 2. Architecture disque 16 2.1 La problématique de

Plus en détail

Optimisation de MySQL

Optimisation de MySQL Olivier DASINI Optimisation de MySQL http://dasini.net/blog/ 1 Votre conférencier Olivier DASINI Formateur certifié MySQL Consultant technologies Open Sources olivier@dasini.net 2 Au programme... Introduction

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

Cours 4. Gestion de la performance. DBA - Maîtrise ASR - Université Evry

Cours 4. Gestion de la performance. DBA - Maîtrise ASR - Université Evry Cours 4 Gestion de la performance 1 Performance? De quelles performance parle-t on? Quels sont les éléments actifs et quels sont leurs rôles respectifs? Quels sont les mesures de performance significatives

Plus en détail

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 2013 SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 Table des matières Signalétique... 2 1 Les bases du SQL... 3 2 SQL server... 6 2 Références des exercices...21 DEHECQ Olivier

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services Nous verrons dans cet article comment exploiter simplement les données de Log de SQL Server 2008 R2 Reporting Services

Plus en détail

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

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation

Plus en détail

Sybase Adaptive Server Enterprise 15

Sybase Adaptive Server Enterprise 15 Sybase Adaptive Server Enterprise 15 Prêt pour Sybase Adaptive Server Enterprise 15? Novembre 2006 Documentation technique # 29 Introduction Cette présentation liste les fonctionnalités importantes de

Plus en détail

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

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

Introduction au Système de Gestion de Base de Données et aux Base de Données Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière

Plus en détail

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012 Initiation à SQL Le langage de communication avec une base de données relationnelles Application avec PostgreSQL Nathalie Camelin 2011/2012 Université du Maine Institut Claude Chappe D'après Levy Estève

Plus en détail

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

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Les bases de l optimisation SQL avec DB2 for i

Les bases de l optimisation SQL avec DB2 for i Les bases de l optimisation SQL avec DB2 for i Christian GRIERE cgriere@fr.ibm.com Common Romandie 3 mai 2011 Les fleurs et les requêtes Lorsque l on veut planter de nouvelles fleurs dans un jardin il

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/26 Bases de Données Avancées DataWareHouse Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin,

Plus en détail

I4 : Bases de Données

I4 : Bases de Données I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis Sommaire 1 Des classes aux tables

Plus en détail

INSIA Bases de données ORACLE Installation SQL*Plus SQL-Developer

INSIA Bases de données ORACLE Installation SQL*Plus SQL-Developer INSIA Bases de données ORACLE Installation SQL*Plus SQL-Developer http://st-curriculum.oracle.com/tutorial/dbxetutorial/index.htm http://st-curriculum.oracle.com/ http://www.oracle.com/ Bertrand LIAUDET

Plus en détail

Oracle Maximum Availability Architecture

Oracle Maximum Availability Architecture Oracle Maximum Availability Architecture Disponibilité des systèmes d informations Technologies et recommandations 1 Qu est-ce que Oracle Maximum Availability Architecture (MAA)? 1. Objectif : Disponibilité

Plus en détail

16H Cours / 18H TD / 20H TP

16H Cours / 18H TD / 20H TP INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES

Plus en détail

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers Programme détaillé Objectifs de la formation Les systèmes de gestion de bases de données prennent aujourd'hui une importance considérable au regard des données qu'ils hébergent. Véritable épine dorsale

Plus en détail

Notion de base de données

Notion de base de données Notion de base de données Collection de données opérationnelles enregistrées sur un support adressable et utilisées par les systèmes et les applications Les données doivent être structurées indépendamment

Plus en détail

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public. DEVAKI NEXTOBJET 1 Présentation...2 Installation...3 Prérequis...3 Windows...3 Linux...3 Exécution...4 Concevoir une BDD avec Devaki NextObject...5 Nouveau MCD...5 Configurer la connexion à la base de

Plus en détail

Mejdi BLAGHGI & Anis ASSÈS

Mejdi BLAGHGI & Anis ASSÈS Ministère de l Enseignement Supérieur, de la Recherche Scientifique et de la Technologie Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Djerba Support de Cours

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

TP3 : Creation de tables 1 seance

TP3 : Creation de tables 1 seance Universite de Versailles IUT de Velizy - Algorithmique 2005/2006 TP3 : Creation de tables 1 seance Objectif : Creation et modication de tables dans une base de donnees. Avant de commencer ce TP, terminer

Plus en détail