Évaluation et optimisation de requêtes

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

Download "Évaluation et optimisation de requêtes"

Transcription

1 LOG660 - Bases de données de haute performance Évaluation et optimisation de requêtes Département de génie logiciel et des TI

2 Question Laquelle de ces requêtes est la plus performante? Requête 1: SELECT SUM(LC.quantite) FROM LigneCommande LC, Produit P WHERE LC.idProduit = P.idProduit AND P.categorie = imprimante Requête 2: SELECT SUM(LC.quantite) FROM LigneCommande LC WHERE LC.idProduit IN (SELECT idproduit FROM Produit P WHERE P.categorie = imprimante ) Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

3 Évaluation des requêtes relationnelles SQL QUOI Évaluateur de requêtes du SGBD COMMENT en fonction du schéma interne 3

4 Traitement des requêtes Requête (ex:sql) Décomposition Schéma conceptuel & externe Requête interne Optimisation Schéma interne & statistiques Plan d'exécution Exécution BD Résultats 4

5 Requête interne Schéma relationnel: Requête SQL: SELECT FROM WHERE <<table>> Livre {Clé prim aire : ISBN} ISBN : CHAR(13) titre : VARCHAR(50) annéeparution : DomaineAnnée nomediteur : VARCHAR(20) code : VARCHAR(10) <<table>> Catégorie {Clé primaire : code} code : VARCHAR(10) descripteur : VARCHAR(20) codeparent : VARCHAR( 10) codeparent titre, descripteur Livre, Catégorie ISBN = AND Livre.code = Catégorie.code Π titre, descripteur Requête interne: σ ISBN = Livre Catégorie 5

6 Coût des opérations physiques La performance d une requête interne est évaluée en fonction: Métrique TempsES : TempsUCT : TailleMC : TailleMS : Description Temps d accès (lectures et écritures) à la mémoire secondaire Temps de traitement de l unité centrale (souvent négligeable par rapport au temps d accès) Espace requis en mémoire centrale Espace requis en mémoire secondaire Dans les systèmes transactionnels: Le principal soucis est de pouvoir traiter les requêtes le plus rapidement possible Les accès disque sont les opérations les plus coûteuses Donc, la principale métrique de performance est TempsES 6

7 Statistiques d évaluation L estimation du coût des opérations se base sur des statistiques Statistiques d une table T: Statistique N T TailleLigne T FB T FBM T B T Card T (col): Min T (col), Max T (col) Description Nombre de lignes de la table T La taille d'une ligne de la table T Facteur de blocage moyen de T (nombre moyen de lignes contenues dans un bloc) Facteur de blocage maximal de T Estimation :!(TailleBloc-TailleDescripteurBloc )/TailleLigne T " Nombre de blocs de la table T Estimation : #N T / FB T $ Nombre de valeurs distinctes (cardinalité) de la colonne col pour la table T Ex : Card T (sexe) = 2 Valeurs minimale et maximale que peut prendre une colonne col 7

8 Statistiques d évaluation Statistiques d une expression de sélection par valeur (col = val) ou par intervalle (col [val 1, val 2 ]) : Statistique FacteurSélectivité T (col = val) FacteurSélectivité T (col [val 1,val 2 ]) Sel T (col = val) Description Pourcentage de lignes pour lesquelles la colonne col contient la valeur val Estimation : 1/Card T (col) Pourcentage de lignes pour lesquelles la colonne col contient une valeur comprise entre val 1 et val 2 Estimation : (val 2 - val 1 )/( Max T (col)- Min T (col) ) Nombre de lignes de T sélectionnées par l'expression de sélection. Estimation : FacteurSélectivité T (col) * N T Le facteur de sélectivité est important car il détermine le nombre de blocs à transférer (TempsES) Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

9 Statistiques d évaluation Statistiques d un index I (arbre-b + ): Statistique TailleEntrée I Ordre I OrdreMoyen I Hauteur I Description Taille d'une entrée dans un bloc interne de l'index Approximation : taille de la clé d'index + taille pointeur de bloc Nombre maximum de fils (pointeurs) pour un bloc interne de l'index I Estimation :!(TailleBloc-TailleDescripteurBloc)/TailleEntrée I " Nombre moyen de fils (pointeurs) pour un bloc interne de l'index I Nombre de niveaux dans l'arbre de l'index I Estimation : #log OrdreMoyenI (N T )$ Autres statistiques: Statistique TH T M Description Taille de l'espace d'adressage pour la fonction de hachage Nombre de blocs disponibles en mémoire centrale pour le traitement des opérations Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

10 Maintien des statistiques par le SGBD Dilemme entre la précision des statistiques (menant à une meilleure estimation des coûts) et l effort (temps, cpu) requis pour les générer Types de mise à jour des statistiques: Incrémentale À chaque mise à jour de la table ou de l index Mise à jour en différé Durant les périodes de faible activité (ex: la nuit) Déclenchée par un script Estimation par échantillonnage Pour les tables très volumineuses (ex: pourcentage des lignes) 10

11 Maintien des statistiques par le SGBD Clause ANALYZE (Oracle) Statistiques complètes: ANALYZE TABLE NomTable COMPUTE STATISTICS Échantillonnage (10 pourcent des lignes): ANALYZE TABLE NomTable ESTIMATE STATISTICS SAMPLE 10 PERCENT 11

12 Opérations à optimiser 1) Sélection de lignes selon une clé Ex: balayage, index, hashage, etc. 2) Tri des lignes d une table Ex: algorithme tri-fusion 3) Jointure de deux tables Ex: boucles imbriquées, jointure tri-fusion, etc. 12

13 Sélection d enregistrements Sélection par balayage: On parcourt la table jusqu'à ce qu'on trouve l'enregistrement désiré Lire toute la table dans le pire cas: O(N) Sélection par indexage: On traverse l'index selon la clé de recherche Complexité: O(log(N)) Permet également la sélection par intervalle Sélection par hachage: L'adresse du bloc contenant l'enregistrement est obtenu en appliquant une fonction de hashage sur la clé Complexité: ~O(1) Ne permet pas la sélection par intervalle 13

14 Balayage de tables (FULL TABLE SCAN) On lit séquentiellement tous les blocs de la table Facteurs à considérer: Le nombre de blocs dans la table Les temps de positionnement de la tête de lecture, dus aux bris de séquence Temps estimé: TempsES (BAL) = B T TempsTrans + NombrePos TempsPosDébut Positionnement #1 Positionnement #2 Positionnement #3 Transfert sans bris de séquence... Transfert sans bris de séquence... Transfert sans bris de séquence... 14

15 Balayage de tables (FULL TABLE SCAN) Situations où il peut être acceptable de balayer une table: Sur les petites tables: Plus avantageux de lire tous les blocs de la table en mémoire centrale et de faire les opérations (sélection, tri, jointure, etc.) en mémoire centrale Sur les tables intermédiaires: Ex: table retournée par un SELECT imbriqué On ne possède pas d index ou autres structures d optimisation pour ces tables Le balayage est souvent la seule option 15

16 Exemple : balayage de la table Livre FB Livre = FBM Livre = 20 B Livre = N Livre / FB Livre = / 20 = blocs Meilleur cas (aucun bris de séquence): TempsES (BAL Livre ) = 50,01 secs Pire cas (bris de séquence après chaque lecture de bloc) : TempsES (BAL Livre ) = 9,16 minutes Observations: N Livre FBM Livre 20 Le balayage de grandes tables est à éviter si possible Le temps de repositionnement peut avoir un impact significatif sur la performance de la requête 16

17 Sélection par égalité dans un index secondaire (INDEX SCAN) Ex: SELECT * FROM Client WHERE id= Hauteur -1 Feuilles à transférer contenant les références aux blocs de l'organisation primaire Blocs de l'organisation primaire à transférer 17

18 Sélection par égalité dans un index secondaire (INDEX SCAN) Trois groupes de blocs à lire: Blocs internes de l index (traverse de l arbre): (Hauteur I -1) blocs à lire Feuilles de l index (les références): Sel T (cléindex = val) /OrdreMoyen I blocs à lire Blocs de l organisation primaire (les lignes recherchées) Sel T (cléindex = val) blocs à lire Sélection sur une clé unique (ex: clé primaire) Un seul bloc feuille et un seul bloc de l organisation primaire, car une seule ligne (au max.) à récupérer Total de (Hauteur I +1) blocs à lire 18

19 Exemple: sélection sur clé non unique (facteur de sélectivité faible) Hauteur I = log 66 ( ) = 4 Sel Livre (code = val) N Livre /Card Livre (code) = 250 lignes TempsES (index secondaire) = 2,83 sec Observations: N Livre FBM Livre 20 Card Livre (code) OrdreMoyen I 66 La sélection par index secondaire est nettement plus rapide que le balayage dans ce cas ci (2.8 sec versus 50 sec) 19

20 Exemple: sélection sur clé non unique (facteur de sélectivité élevé) Hauteur I = log 66 ( ) = 4 Sel Livre (code = val) N Livre /Card Livre (code) = lignes TempsES (index secondaire) = 558,37 secs Observations: N Livre FBM Livre 20 Card Livre (code) 20 OrdreMoyen I 66 La sélection par index secondaire est pire que le balayage (558 sec versus 50 sec)! Comme les lignes se trouvent (potentiellement) dans des blocs différents, il faut repositionner la tête de lecture pour chaque ligne Il est préférable de simplement balayer la table dans ce cas 20

21 Exemple: sélection sur clé unique (clé primaire ISBN) Hauteur I = log 66 ( ) = 4 TempsES (index secondaire) = (Hauteur I +1) TempsESBloc = 55 ms TempsES (index primaire) = Hauteur I TempsESBloc = 44 ms Observations: N Livre FBM Livre 20 Card Livre (ISBN) OrdreMoyen I 66 Un index secondaire est comparable à un index primaire dans le cas d'une clé unique (un seul bloc de plus à lire pour la référence) L'index secondaire est donc préférable pour les clés uniques (Oracle en crée un par défaut sur chaque clé primaire) 21

22 Balayage vs sélection par index secondaire (N = , FBM =20) temps (ms) Index secondaire Balayage Observations: L index secondaire est préférable au balayage si la colonne de sélection possède plus de 200 valeurs différentes (Card T (col) 200) Oracle recommande de NE PAS créer d index si la sélection peut retourner plus que 15% des lignes (FacteurSélectivité T (col) 15%) Ex: créer un index sur une colonne sexe est une mauvaise idée 22

23 Taille de l'index secondaire Index secondaire sur la colonne code de Livre (clé non unique) Taille de la table Livre: B Livre = N Livre / FBM Livre = / 20 = blocs Taille de l index (estimée par le nombre de blocs feuilles): B IndexSecondaire = N Livre / OrdreMoyen I = blocs Observations: N Livre FBM Livre 20 Card Livre (code) OrdreMoyen I 66 La taille de l index en mémoire secondaire correspond à 30% de la taille de la table indexée! Il faut donc créer des index UNIQUEMENT lorsque pertinent 23

24 Balayage de l index (FULL INDEX SCAN) Dans les cas où toutes les colonnes souhaitées se trouvent dans la clé de l index Ex: (index sur la colonne idclient d une table Transaction) SELECT idclient, COUNT(*) as nbtransactions FROM Transaction GROUP BY idclient On balaye les blocs feuilles de l index au lieu de balayer les blocs de la table Comme l information est plus compacte dans les feuilles de l index, il y a moins de blocs à lire Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

25 Sélection par égalité avec hachage (HASH SCAN) Stratégie de chaînage en cas de débordement Dans le pire cas, il faut parcourir tous les blocs de l adresse correspondant à la clé de sélection Nombre moyen de blocs à lire (distribution uniforme des lignes): N T / (TH T FB T ) blocs Adresse du paquet TH

26 Exemple: hachage sur ISBN de Livre (HASH cluster Oracle) Cas idéal (sans débordement) Taux de remplissage des blocs TR = 80% FB Livre = 80% FBM Livre = 16 TH Livre = N Livre / FB Livre = TempsES (hashage) = /( ) 11 ms = 11 ms TempsES (index secondaire) = (Hauteur I + 1) 11 ms = 55 ms Observations: N Livre FBM Livre 20 Dans le cas idéal, la sélection par hashage est optimale car il n y a qu un seul bloc à lire (versus 5 pour l index secondaire) Cependant, la performance peut être affectée par les débordements, si la taille d adressage (paramètre TH) est mal choisie 26

27 Tri d'une table Plusieurs opérations nécessitent de trier une table: Résultats triés (ORDER BY) Élimination des doubles (DISTINCT) Opérations d agrégation (GROUP BY) Jointure par tri-fusion Si le nombre de blocs en mémoire centrale (M) est grand On lit la table et la trie en mémoire centrale Sinon, si M est petit On doit faire un tri externe de la table (ex: algorithme de trifusion) 27

28 Algorithme de tri fusion Étape tri On trie la table en mémoire centrale par groupes de M blocs On doit lire et écrire tous les blocs de la table, avec un repositionnement pour chaque groupe de M blocs Coût : 2 ( B T /M TempsPosDébut + B T TempsTrans) Positionnement Positionnement Positionnement Positionnement Lecture Lecture Lecture Lecture Positionnement Positionnement Positionnement Positionnement Création de 12/3 = 4 groupes Ecriture Ecriture Ecriture Ecriture

29 Algorithme de tri fusion Étape fusion On fusionne récursivement les groupes voisins (triés) jusqu à obtenir un seul groupe contenant tous les blocs Environ log M-1 (B T /M) passes de fusion, chacune demandant un balayage en lecture et écriture de la table Coût : B T (2 log M-1 (B T /M) - 1) TempsESBloc Passe de fusion #1 produit 4/2 = 2 groupes Passe de fusion #2 produit 2/2 =1 groupe Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

30 Exemple: Tri de la table Livre M = 50 TempsES (tri-fusion) = 29,5 mins N Livre FBM Livre 20 B Livre Observations: Inefficace de trier une grande table lorsqu on possède peu de mémoire centrale (ex: seulement M=50 blocs) Solution alternative: créer un index primaire ou CLUSTER INDEX sur la clé de tri afin que les lignes soient physiquement ordonnées selon cette clé, en mémoire secondaire 30

31 Jointure de deux tables (R! θ S) Une des opérations ayant le plus d impact sur la performance des requêtes L optimisation des jointure est donc cruciale Principales approches de jointure: Jointure par boucles imbriquées par blocs (BIB) Jointure par boucles imbriquées avec index (BII) Jointure par tri-fusion (JTF) Jointure par hashage (JH) Pré-jointure (PJ) 31

32 Boucles imbriquées par blocs (NESTED LOOP JOIN) POUR chaque bloc b R de R POUR chaque bloc b S de S POUR chaque ligne l R de b R POUR chaque ligne l S de b S SI θ sur l R et l S est satisfait Produire la ligne concaténée à partir de l R et l S FINSI FINPOUR FINPOUR FINPOUR FINPOUR TempsES (BIB) = B R (TempsESBloc + B S TempsTrans + TempsPosDébut) Variante : Boucles imbriquées multiblocs (BIM) On lit M blocs de R à la fois (au lieu de 1 bloc) Réduit le nombre de repositionnements de la tête de lecture 32

33 Exemple: BIB sur Livre! Catégorie R=Livre et S=Catégorie: TempsES (BIB) = 100,83 mins R = Catégorie et S = Livre: TempsES (BIB) = 83,37 mins Si S est lue une seule fois en mémoire centrale: TempsES (BIB) = 50,1 sec Observations: N Catégorie FB Catégorie 40 B Catégorie 100 N Livre FB Livre 20 B Livre Légèrement avantageux de mettre la plus petite table dans la boucle externe (83,37 mins vs 100,83 mins) Gain important de performance si la table de la boucle interne peut être mise en mémoire (aucune relecture) 33

34 Boucles imbriquées avec index (NESTED LOOPS with index) Comme BIB, sauf que les lignes la table interne sont obtenues à l aide d un index (au lieu d un balayage) POUR chaque ligne l R de R POUR chaque ligne l S de S satisfaisant θ (sélection en utilisant un index) Produire la ligne concaténée à partir de l R et l S FINPOUR FINPOUR TempsES (BII) = B R TempsESBloc + N R TempsES (index secondaire) Exige d avoir un index sur la colonne de jointure de la table située dans la boucle interne 34

35 Exemple: BII sur Livre! Catégorie R=Livre et S=Catégorie TempsES (index secondaire sur Catégorie.code) = 55 ms TempsES (BII) = B Livre TempsESBloc + N Livre TempsES (index sec.) = 15,43 hrs R = Catégorie et S = Livre TempsES (index secondaire sur Livre.code) = 2827 ms TempsES (BII) = B Catégorie TempsESBloc + N catégorie TempsES (index sec.) = 3,14 hrs N Catégorie FB Catégorie 40 B Catégorie 100 N Livre FB Livre 20 B Livre Observations: La sélection par index n est pas tellement affectée par la taille de la table Il faut donc TOUJOURS mettre la plus grande table dans la boucle interne de la jointure BII (ex: table Livre dans ce cas) 35

36 Contexte avantageux pour BII L algorithme BII est très avantageux lorsqu une des tables est beaucoup plus petite que l autre Ex: la table produite par la sélection de la table Livre à l aide d une clé primaire (ne contient qu une seule ligne) Dans ce cas, l algorithme BII n exige qu une seule sélection par index (table Catégorie dans la boucle interne) σ ISBN = ( S é l e c t i o n p a r i n d e x s e c o n d a i r e s u r I S B N ) Livre Π titre, descripteur (Balayage) (Boucle imbriquée avec index secondaire sur code de la table interne Catégorie) Catégorie 36

37 Jointure par tri-fusion (SORT MERGE JOIN) On trie les tables R et S, et on les fusionne en faisant un balayage synchronisé dans les tables triées On joint les groupes de lignes ayant la même valeur pour la clé Trier R et S par tri externe et réécrire dans des fichiers temporaires Lire groupe de lignes G R (c R ) de R pour la première valeur c R de clé de jointure Lire groupe de lignes G S (c S ) de S pour la première valeur c S de clé de jointure TANT QUE il reste des lignes de R et S à traiter SI c R = c S Joindre chaque paire de lignes G R (c R ) et G S (c S ); Lire les groupes suivants G R (c R ) de R et G S (c S ) de S; SINON SI c R < c S Lire le groupe suivant G R (c R ) de R; SINON SI c R > c S Lire le groupe G S (c S ) suivant dans S; FINSI FIN TANT QUE TempsES (JTF) = TempsES (TRI R ) + TempsES (TRI S ) + 2 (B R + B S ) TempsESBloc Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

38 Exemple: JTF sur Livre! Catégorie N Catégorie FBM Catégorie 40 B Catégorie 100 TempsES(TRI Catégorie ) ms M = 50 TempsES (JTF) = TempsES (TRI Livre ) + TempsES (TRI Catégorie ) + 2 (B livre +B Catégorie ) TempsESBloc = secs TempsES (BIM) = 150 secs (Catégorie dans la boucle externe) Observations: N Livre FBM Livre 20 B Livre 50,000 TempsES(TRI Livre ) ms La jointure BIM est plus performante, même si sa complexité moyenne est pire que celle de JTF Explication: une des tables est petite (table Catégorie), ce qui correspond au cas avantageux pour BIM (ou BII) 38

39 Exemple 2: 100 fois plus de Catégories N Catégorie FBM Catégorie 40 B Catégorie TempsES(TRI Catégorie ) ms M = 50 N Livre FBM Livre 20 B Livre 50,000 TempsES(TRI Livre ) ms TempsES (JTF) = secs TempsES (BIM) = secs M = 10 TempsES (JTF) = secs TempsES (BIM) = secs Observations: Lorsque les deux tables sont grandes, JTF est plus performante que BIM, surtout lorsqu il y a peu d espace en mémoire centrale (M est petit) 39

40 Jointure par hachage (HASH JOIN) Étape 1: partition des tables {Partitionner R par hachage} POUR chaque ligne l R de R Ajouter l R au paquet R i, où i = h(clé de l R ) Chaîner un nouveau bloc s'il y a débordement FINPOUR {Partitionner S par hachage} POUR chaque ligne l S de S Ajouter l S au paquet S i, où i = h(clé de l S ) Chaîner un nouveau bloc s'il y a débordement FINPOUR Étape 2: jointure des lignes dans les paquets de même adresse POUR chaque paquet R i POUR chaque ligne l R de R i Joindre l R avec les lignes de S i ayant la même valeur pour la clé de jointure FINPOUR FINPOUR TempsES (JH) = TempsES (BAL R ) + TempsES (BAL S ) + 2 (B R + B S ) TempsESBloc 40

41 Exemple: JH sur Livre!Catégorie N Catégorie FB Catégorie 40 B Catégorie TempsES (BAL Catégorie ) ms N Livre FB Livre 20 B Livre TempsES (BAL Livre ) ms M = 50 TempsES (JH) = secs TempsES (JTF) = secs TempsES (BIM) = secs (R = Catégorie) Observations: Sauf si une des tables est déjà triée, JH est un peu plus rapide que JTF 41

42 Pré-jointure par une organisation en grappe hétérogène (CLUSTER JOIN) Les deux tables à joindre sont organisées dans une même grappe (cluster) hétérogène, selon la clé de jointure Ex: Client et Compte dans une même grappe selon la clé idclient Les tables sont physiquement jointes dans la grappe Ex: grappe Client! Compte (égalité sur idclient) Il suffit de balayer séquentiellement les blocs de la grappe: TempsES (PJ) = TempsES (BAL R ) + TempsES (BAL s ) Optimal en théorie, car un seul balayage des tables à faire, mais la fragmentation interne peut nuire aux performances 42

43 Exemple: PJ sur Livre! Catégorie N Livre FB Livre 20 B Livre TempsES (BAL Livre ) ms N Catégorie FB Catégorie 40 B Catégorie 100 TempsES (BAL Catégorie ) 110 ms On suppose que les tables Livre et Catégorie sont organisées dans une même grappe, selon la clé code TempsES (PJ) = 50 secs TempsES (BIM) = 150 secs (R = Catégorie, M = 50) Observations: PJ est trois fois plus rapide que BIM, même si l une des tables est beaucoup plus petite que l autre Pas toujours le cas en pratique 43

44 Comparaison des méthodes de jointure BIB / BIM (NESTED LOOPS JOIN) Lorsqu une des deux tables à joindre (ou les deux) est petite et peut être lue en mémoire centrale BII (NESTED LOOPS INDEX JOIN) Lorsqu une des tables est beaucoup plus petite que l autre et qu on possède un index secondaire sur la clé de jointure de la plus grande table La plus grande table est mise dans la boucle interne, et le coût de sélection de ses lignes est amorti par l index 44

45 Comparaison des méthodes de jointure JTF (SORT MERGE JOIN) Lorsqu on doit joindre deux grandes tables Permet également les jointures sur des conditions d inégalité Avantageux lorsqu une des tables (ou les deux) est déjà triée (ex: index primaire sur la table ou tri provenant d une opération en amont) Note: l étape de tri peut être accélérée à l aide d un FULL INDEX SCAN sur un index de la clé de jointure (la clé déjà triée dans l index) JH (HASH JOIN) Lorsqu on doit joindre deux grandes tables Permet seulement les jointures sur des conditions d égalité Avantageux lorsqu une des tables (ou les deux) est déjà organisée dans une grappe homogène (single table hash cluster) selon la clé de jointure 45

46 Comparaison des méthodes de jointure PJ (CLUSTER JOIN) Optimal en théorie, mais peut parfois nuire à l exécution: Fragmentation importante de la mémoire secondaire Ralentit le balayage d une table dans la grappe (car les lignes de la table sont plus distantes les unes des autres) Donc détériore la performance dans la situation ou le balayage est privilégié 46

47 Optimisation Chercher le meilleur plan d exécution? Beaucoup trop de possibilités en pratique Solution approchée à coût raisonnable Générer un nombre limité d alternatives prometteuses Heuristiques (ex: ordre des sélections, projection, jointures, etc.) Choisir la meilleure Estimation approximative du coût d exécution 47

48 Plans d'exécutions équivalents Plusieurs arbres algébriques équivalents Π titre, descripteur Π titre, descripteur σ ISBN = σ ISBN = Catégorie Livre Catégorie Livre 48

49 Règles d équivalences d algèbre relationnelle Eclatement d'une sélection conjonctive (SE) σ e1 ET e2 (T) = σ e1 (σ e2 (T)) Commutativité de la sélection (SC) σ e1 (σ e2 (T)) = σ e2 (σ e1 (T)) Elimination des projections en cascades (PE) π liste1 (π liste2 (T)) = π liste1 (T) Commutativité de la jointure (JC) T 1! T 2 = T 2! T 1 Associativité de la jointure (JA) T 1! (T 2! T 3 ) = (T 1! T 2 )! T 3 49

50 Règles d équivalences d algèbre relationnelle (suite) Commutativité restreinte de la sélection et de la jointure (CSJ) σ e (T 1! T 2 ) = σ e (T 1 )! T 2 Si l'expression de sélection e ne contient que des colonnes de T 1 Commutativité restreinte de la projection et de la sélection (CPS) π listecol (σ e (T)) = π listecol (σ e (π (listecol col de e) T)) Commutativité restreinte de la projection et de la jointure (CPJ) etc. π listecol (T 1! T 2 ) = π listecol (π (listecol col de T1) (T 1 )! π (listecol col de T2) (T 2 )) 50

51 Plusieurs plans d exécution pour un arbre algébrique Pour chaque opération logique Plusieurs choix d opérations physiques Π titre, descripteur (Balayage) Π titre, descripteur (Balayage) Π titre, descripteur (Balayage) σ ISBN = (Balayage) σ ISBN = (Balayage) σ ISBN = (Balayage) (Jointure par tri-fusion) (Jointure par BIM) (Jointure par hachage) Livre Catégorie Livre Catégorie Livre Catégorie etc. 51

52 Mise en oeuvre par matérialisation Π titre, descripteur(balayage) σ annéeparution = 2000 (Boucle imbriquée par index secondaire sur code de la table interne Catégorie) Catégorie (Sélection par index secondaire sur annéeparution) Matérialisation: On exécute les opérations depuis les feuilles vers la racine de l arbre algébrique Chaque opération produit une table intermédiaire Désavantages: On doit écrire les tables intermédiaires sur disque si elles sont volumineuses (coût additionnel) On ne possède pas d index sur les tables intermédiaires, donc les opérations sur ces tables sont coûteuses Livre 52

53 Mise en oeuvre par pipeline Π titre, descripteur (Balayage) σ annéeparution = 2000 (Boucle imbriquée par index secondaire sur code de la table interne Catégorie) Catégorie (Sélection par index secondaire sur annéeparution) Pipeline: Chaque ligne traverse toutes les opérations sans être écrite dans une table temporaire Avantage: Aucune écriture supplémentaire Désavantage: Pas adapté à toutes les opérations Ex (tri): on doit trier toutes les lignes en même temps En pratique: On utilise le pipeline si possible, et la matérialisation sinon Livre 53

54 Heuristiques d'optimisation Élaguer l espace des solutions Solutions non applicables Exemples d heuristiques Sélections le plus tôt possible Projections le plus tôt possible Les jointures plus restrictives en premier Jointures supportées par index, hachage ou grappe en premier 54

55 Optimisation par coût Minimiser le coût (ex: temps d exécution) Stratégies Programmation dynamique Amélioration itérative Recuit simulé Algorithme génétique etc. 55

56 Estimation du coût d'un plan d'exécution Π titre, descripteur (Balayage TempsES = 11 ms) (Ecriture du résultat TempsES = 11 ms) σ ISBN = (Balayage TempsES = ms) Coût total = ms (Ecriture du résultat TempsES = ms) (Jointure par tri-fusion TempsES = ms) TempsES(Plan avec pipeline) = TempsES (JTF Livre!Catégorie ) = ms Livre Catégorie 56

57 Autre exemple Π titre, descripteur (Balayage TempsES = 11 ms) (Ecriture du résultat TempsES = 11 ms) (Boucle imbriquée par index secondaire sur code de la table interne Catégorie TempsES = 44ms) Coût total = 132ms σ ISBN = Livre Catégorie (Ecriture du résultat TempsES = 11ms) (Sélection par index secondaire sur ISBN TempsES = 55ms) TempsES(Plan avec pipeline) = TempsES(S=IS pour index sur ISBN) + N σ ISBN= (Livre) * TempsES(S=IS sur code de Catégorie) = 55 ms + 33 ms = 88 ms 57

58 Types d optimisation Oracle COST (statistique): minimise le coût estimé Besoin de statistiques (ANALYSE) Plus cher à calculer mais donne de meilleurs plans d exécution Mode ALL_ROWS Minimise le temps total Ex: on préfère JTF à BIM pour joindre deux grandes tables Mode FIRST_ROWS Minimise temps de réponse (obtention des premières lignes) Ex: on préfère BIM à FTH pour joindre deux grandes tables Utilisé dans les applications interactives où l utilisateur n a pas besoin de voir simultanément toutes les lignes d une requête RULE (heuristique) Utilisé seulement lorsque des statistiques ne sont pas disponibles 58

59 Optimisation heuristique Oracle mode RULE Rang Chemin d'accès 1 Sélection par ROWID 2 Sélection d'une ligne par jointure dans une organisation par index groupant ou hachage hétérogène (CLUSTER) 3 Sélection d'une ligne par hachage sur clé candidate (PRIMARY ou UNIQUE) 4 Sélection d'une ligne par clé candidate 5 Jointure par une organisation par index groupant ou hachage hétérogène (CLUSTER) 6 Sélection par égalité sur clé de hachage (HASH CLUSTER) 7 Sélection par égalité sur clé d'index groupant (CLUSTER) 8 Sélection par égalité sur clé composée 9 Sélection par égalité sur clé simple d'index secondaire 10 Sélection par intervalle borné sur clé indexée 11 Sélection par intervalle non borné sur clé indexée 12 Tri-fusion 13 MAX ou MIN d'une colonne indexée 14 ORDER BY sur colonne indexée 15 Balayage 59

60 Changement du mode pour une session ALTER SESSION SET OPTIMIZER_GOAL = RULE ALL_ROWS FIRST_ROWS CHOOSE 60

61 Indices d'optimisation (hints) Suggère des techniques d optimisation à SGBD pour une requête particulière Sert en mode de conception ou lorsque l optimiseur ne choisit pas un plan optimal (ex: mauvaises statistiques) Exemple 1: Forcer l utilisation du mode d optimisation RULE SELECT /*+ RULE*/ nom FROM Client WHERE noclient = 10 ; Exemple 2: Forcer l utilisation de l index secondaire pour les sélections sur la colonne index_sexe de Employé (mauvaise idée) SELECT /*+ INDEX(EMPLOYÉ INDEX_SEXE)*/ nom, adresse FROM EMPLOYÉ WHERE SEXE = F 61

62 Optimisation dans SQL Developper Mode AUTOTRACE Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

63 Optimisation dans SQL Developper Plan d exécution: OPERATION Nom de l opération du plan d exécution (ex : NESTED LOOPS, HASH JOIN) COST LAST_CR_BUFFER_GETS LAST_ELAPSED_TIME LAST_STARTS Coût de l opération estimé par l optimiseur de requête Nombre de blocs lus de la cache pour chaque opération, lors de la dernière exécution Temps (en microsecondes) passé dans chaque opération, lors de la dernière exécution Nombre de fois qu une opération a été faite lors de la dernière exécution Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

64 Optimisation dans SQL Developper Statistiques d exécution (liste partielle): consistent gets physical reads redo size bytes sent bytes received Nombre de blocs lus en mémoire centrale après accès éventuel au disque Nombre de lectures effectives sur le disque (en blocs) Le nombre d octets générés pour le journal permettant de refaire l opération (redo log) Le nombre d octets envoyés de la BD au client par le réseau. Le nombre d octets envoyés du client à la BD par le réseau Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

65 Oracle SQL Tuning Advisor Source: Oracle Database 2 Day + Performance Tuning Guide 11g Release 1 (11.1) Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

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

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

Évaluation et optimisation de requêtes

Évaluation et optimisation de requêtes Évaluation et optimisation de requêtes Serge Abiteboul à partir de tranparents de Philippe Rigaux, Dauphine INRIA Saclay April 3, 2008 Serge (INRIA Saclay) Évaluation et optimisation de requêtes April

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

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

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

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

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

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

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

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

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

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

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

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

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 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

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

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier ENSTA Mastère Spécialisé en Architecture des Systèmes d Information Cours C1-3 Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier Partie II : les SGBD vus du coté Administrateur

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

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

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

Bases de Données. Plan

Bases de Données. Plan Université Mohammed V- Agdal Ecole Mohammadia d'ingénieurs Rabat Bases de Données Mr N.EL FADDOULI 2014-2015 Plan Généralités: Définition de Bases de Données Le modèle relationnel Algèbre relationnelle

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

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

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

ORACLE TUNING PACK 11G

ORACLE TUNING PACK 11G ORACLE TUNING PACK 11G PRINCIPALES CARACTÉRISTIQUES : Conseiller d'optimisation SQL (SQL Tuning Advisor) Mode automatique du conseiller d'optimisation SQL Profils SQL Conseiller d'accès SQL (SQL Access

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

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

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

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

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

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

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

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

Systèmesdegestionde. basesdedonnées

Systèmesdegestionde. basesdedonnées M1 STIC SGBD D'après une histoire originale de T Grison Systèmesdegestionde basesdedonnées Notes de cours Sommaire 1 Gestion des données 7 1 Architecture globale d'oracle 7 1 Exécution d'une requête 7

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

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

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

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

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

Les bases de données Page 1 / 8

Les bases de données Page 1 / 8 Les bases de données Page 1 / 8 Sommaire 1 Définitions... 1 2 Historique... 2 2.1 L'organisation en fichier... 2 2.2 L'apparition des SGBD... 2 2.3 Les SGBD relationnels... 3 2.4 Les bases de données objet...

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

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS Sauvegarde collaborative entre pairs 1 Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS Sauvegarde collaborative entre pairs 2 Introduction Pourquoi pair à pair? Utilisation de ressources

Plus en détail

Bases de données et sites WEB Licence d informatique LI345

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Bases de données avancées Introduction

Bases de données avancées Introduction Bases de données avancées Introduction Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan Objectifs et contenu du cours Rappels BD relationnelles Bibliographie Cours BDA (UCP/M1)

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

Mise en oeuvre TSM 6.1

Mise en oeuvre TSM 6.1 Mise en oeuvre TSM 6.1 «Bonnes pratiques» pour la base de données TSM DB2 Powered by Qui sommes nous? Des spécialistes dans le domaine de la sauvegarde et de la protection des données 10 ans d expertise

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

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

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

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

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

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses 6. Hachage Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses PLAN Définition Fonctions de Hachage Méthodes de résolution de collisions Estimation

Plus en détail

SQL Serveur 2012+ Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

SQL Serveur 2012+ Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise SQL Serveur 2012+ Programme de formation France Belgique Suisse - Canada Microsoft Partner Formez vos salariés pour optimiser la productivité de votre entreprise Dernière mise à jour le : Avril 2014 Des

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2015) Marc Parizeau, Département de génie électrique et de génie informatique Plan Données massives («big data») Architecture Hadoop distribution

Plus en détail

MODE OPERATOIRE OPENOFFICE BASE

MODE OPERATOIRE OPENOFFICE BASE MODE OPERATOIRE OPENOFFICE BASE Openoffice Base est un SGBDR : Système de Gestion de Base de Données Relationnelle. L un des principaux atouts de ce logiciel est de pouvoir gérer de façon efficace et rapide

Plus en détail

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

Bases de données réparties: Fragmentation et allocation Pourquoi une base de données distribuée? Bibliographie Patrick Valduriez, S. Ceri, Guiseppe Delagatti Bases de données réparties: Fragmentation et allocation 1 - Introduction inventés à la fin des années

Plus en détail

Module BDR Master d Informatique (SAR)

Module BDR Master d Informatique (SAR) Module BDR Master d Informatique (SAR) Cours 6- Bases de données réparties Anne Doucet Anne.Doucet@lip6.fr 1 Bases de Données Réparties Définition Conception Décomposition Fragmentation horizontale et

Plus en détail

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES SGBD / Aide à la décision CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES Réf: KAO Durée : 15 jours (7 heures) OBJECTIFS DE LA FORMATION Ce cycle complet vous apportera les connaissances nécessaires pour

Plus en détail

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université Systèmes d Exploitation - ENSIN6U3 Systèmes de gestion de fichiers - SGF Leonardo Brenner 1 Jean-Luc Massat 2 1 Leonardo.Brenner@univ-amu.fr 2 Jean-Luc.Massat@univ-amu.fr Aix-Marseille Université Faculté

Plus en détail

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S

Plus en détail

Compte-rendu de projet de Système de gestion de base de données

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

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

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul

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

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1 Cours 6 Sécurisation d un SGBD DBA - M1ASR - Université Evry 1 Sécurisation? Recette d une application Vérification des fonctionnalités Vérification de l impact sur le SI existant Gestion du changement

Plus en détail

Plan d Exécution Graphique pour des Requêtes SQL Simples

Plan d Exécution Graphique pour des Requêtes SQL Simples Plan d Exécution Graphique pour des Requêtes SQL Simples Cet article est paru initialement le 16 décembre 2008 sur le magazine en ligne Simple-Talk http://www.simpletalk.com/sql/performance/graphical-execution-plans-for-simple-sql-queries/

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur

Plus en détail

Chapitre 10. Architectures des systèmes de gestion de bases de données

Chapitre 10. Architectures des systèmes de gestion de bases de données Chapitre 10 Architectures des systèmes de gestion de bases de données Introduction Les technologies des dernières années ont amené la notion d environnement distribué (dispersions des données). Pour reliér

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

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

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

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

Implémentation des SGBD

Implémentation des SGBD Implémentation des SGBD Structure générale des applications Application utilisateur accédant à des données d'une base Les programmes sous-jacents contiennent du code SQL Exécution : pendant l'exécution

Plus en détail

Développement de base de données Microsoft SQL Server 2012. Durée : 5 jours Référence : DPSQL12. Contenu

Développement de base de données Microsoft SQL Server 2012. Durée : 5 jours Référence : DPSQL12. Contenu Développement de base de données Microsoft SQL Server 2012 Durée : 5 jours Référence : DPSQL12 Cette formation permet aux participants de maîtriser les fonctionnalités de Microsoft SQL Server 2012 telles

Plus en détail

Année Universitaire 2009/2010 Session 2 de Printemps

Année Universitaire 2009/2010 Session 2 de Printemps Année Universitaire 2009/2010 Session 2 de Printemps DISVE Licence PARCOURS : CSB4 & CSB6 UE : INF 159, Bases de données Épreuve : INF 159 EX Date : Mardi 22 juin 2010 Heure : 8 heures 30 Durée : 1 heure

Plus en détail

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1 1 COMPOSANTS DE L ARCHITECTURE D UN SGBD Chapitre 1 Généralité 2 Les composants principaux de l architecture d un SGBD Sont: Les processus Les structures mémoires Les fichiers P1 P2 Pn SGA Fichiers Oracle

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

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

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager

Plus en détail

Audit activité base Oracle / SAP

Audit activité base Oracle / SAP Audit activité base Oracle / SAP Version : 1.0 Date : 04/02/2009 Auteur : xxxxxxxxxxx SOMMAIRE 1 OBJECTIFS DE CE DOCUMENT...3 2 Résultats de l étude...4 2.1. Bref exposé des constatations...4 2.1.1 Le

Plus en détail

Parallel Execution. IS-Net 29 DATA WEBHOUSE. Informatique de gestion et systèmes d information

Parallel Execution. IS-Net 29 DATA WEBHOUSE. Informatique de gestion et systèmes d information Informatique de gestion et systèmes d information Parallel Execution LIBD@hegne.ch / Mars 2001 ISNet29_parallel_execution.doc TABLE DES MATIERES 1 Introduction... 3 2 Les architectures parallèles... 3

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

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

4D v11 SQL Release 5 (11.5) ADDENDUM

4D v11 SQL Release 5 (11.5) ADDENDUM ADDENDUM Bienvenue dans la release 5 de 4D v11 SQL. Ce document présente les nouveautés et modifications apportées à cette nouvelle version du programme. Prise en charge de nouvelles plates-formes La release

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

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

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2014) Marc Parizeau, Département de génie électrique et de génie informatique Plan Mégadonnées («big data») Architecture Hadoop distribution

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

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager TP base de données SQLite 1 Différents choix possibles et choix de SQLite : La plupart des logiciels de gestion de base de données fonctionnent à l aide d un serveur. Ils demandent donc une installation

Plus en détail

Hibernate vs. le Cloud Computing

Hibernate vs. le Cloud Computing Hibernate vs. le Cloud Computing Qui suis-je? Julien Dubois Co-auteur de «Spring par la pratique» Ancien de SpringSource Directeur du consulting chez Ippon Technologies Suivez-moi sur Twitter : @juliendubois

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

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]

Plus en détail

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Loris MARCHAL Laboratoire de l Informatique du Parallélisme Équipe Graal Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Thèse réalisée sous la direction

Plus en détail

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

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

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

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

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