Bases de données. Optimisation système d'un SGBD. Olivier Perrin IUT Nancy-Charlemagne Département Informatique Université Nancy 2 Nancy

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

Download "Bases de données. Optimisation système d'un SGBD. Olivier Perrin IUT Nancy-Charlemagne Département Informatique Université Nancy 2 Nancy"

Transcription

1 Bases de données Optimisation système d'un SGBD Olivier Perrin IUT Nancy-Charlemagne Département Informatique Université Nancy 2 Nancy Olivier.Perrin@loria.fr Optimisation 2006/2007 1

2 Optimisation Plan 1. Stockage Stockage de données Organisation des fichiers Application à Oracle 2. Index Différents types d'index B-Arbre Hachage Application à Oracle 3. Requêtes Introduction et exemple Optimisation logique et physique Application à Oracle Optimisation 2006/2007 2

3 1. Stockage de données Plan Stockage de données: supports, fonctionnement d un disque Organisation des fichiers; champs, enregistrements, blocs, accès Application à Oracle Optimisation 2006/2007 3

4 Mémoires de stockage Un ordinateur possède plusieurs mémoires de stockage mémoire cache mémoire vive disque dur bande Ordres de grandeur Mémoire Taille (Mo) Temps accès (secondes) Cache (10 nanosec.) Vive 10 3 Mo ( nanosec.) Secondaire Mo (Giga) 10-2 (10 millisec.) Tertiaire (Téra) 1 seconde Optimisation 2006/2007 4

5 Impact sur les SGBD Un SGBD doit ranger ses données sur disque (volume important, persistance) Besoin de transférer les données du disque vers la mémoire Les données le plus souvent utilisées devraient résider en mémoire La performance d un SGBD dépend de sa capacité gérer efficacement les transferts disque-mémoire Optimisation 2006/2007 5

6 Organisation physique d un disque Disque surface(s) magnétique stockant des 0 ou des 1 Organisation un disque est divisé en secteurs bloc: ensemble de secteurs, dont la taille est généralement un multiple de 512 piste: ensemble des blocs d une surface lus au cours d une rotation cylindre: ensemble de pistes situées sous les têtes de lecture Optimisation 2006/2007 6

7 Un disque dur Optimisation 2006/2007 7

8 Structure d un disque PISTE BLOCS Tête de lecture Bras Contrôleur DONNÉES CYLINDRE DISQUE Optimisation 2006/2007 8

9 Disque: mémoire à accès direct Adresse = numéro du disque + numéro de la piste + numéro du bloc sur la piste Temps d accès délai de positionnement de la tête sur la piste délai de latence pour attendre que le bloc passe sous la tête temps de transfert pour attendre que le (ou les) bloc(s) soient lus et transférés Attention: on lit toujours au moins un bloc, même si l on veut qu un octet! Optimisation 2006/2007 9

10 Optimisation Première possibilité: le placement des blocs Deuxième possibilité: l ordre des accès Troisième possibilité: la mémoire cache Optimisation 2006/

11 Optimisation: regroupement Exemple: le SGBD doit lire 5 chaînes de 1000 octets position aléatoire des blocs 5 déplacements de tête de lecture + 5 délais de latence position contiguë des blocs 1 déplacement + 1 délai de latence La gain obtenu pour la lecture de d1 et d2 est plus important si les données sont «proches» proximité des données dans le même bloc: 1 seule lecture dans deux blocs consécutifs: 2 lectures successives sur la même piste: 1 rotation du disque sur le même cylindre: pas de déplacement des têtes fonction de l éloignement des pistes: nombre de pistes à parcourir Optimisation 2006/

12 Optimisation: regroupement (2) Pour optimiser la proximité, un SGBD crée un espace disque important à la création d une base Ensuite, il gère lui-même cet espace Par exemple, une table sera stockée sur la même piste ou sur les pistes d un même cylindre Le plus possible, les lectures sont alors séquentielles Optimisation 2006/

13 Optimisation: séquencement Un système doit faire face à plusieurs demandes simultanées l utilisateur A demande la lecture du fichier F1 l utilisateur B demande la lecture du fichier F2 L'entrelacement des demandes entraîne des lectures aléatoires Solution: conserver temporairement dans un cache les demandes, et les réorganiser au mieux Exemple: L(1,16) signifie Lecture du bloc 16 de la piste 1 Optimisation 2006/

14 Optimisation: séquencement (2) Mémoire cache L(1,16) - L(2,23) - L(1,18) - L(2,24) - L(1,17) L(1,16) L(2,23) L(1,18) L(2,24) L(1,17) Contrôleur L(1,16) - L(1,17) - L(1,18) - L(2,23) - L(2,24) Séquenceur Optimisation 2006/

15 Optimisation: buffer Utilisation de mémoires tampon (buffer) Un buffer est un ensemble de blocs en mémoire principale qui sont des copies des blocs sur le disque Lors de la demande d un bloc recherche dans le buffer (accès avec table de hachage) si le bloc est présent, pas de lecture sinon, on effectue la lecture, et on stocke dans le buffer Prefetching: on peut utiliser le buffer pour lire en avance des données (par exemple si on pense que toute une table devra être parcourue lorsqu un bloc est accédé) Optimisation 2006/

16 Organisation des fichiers Optimisation 2006/

17 Les fichiers Une base de données = un ou plusieurs fichiers Un fichier = un ou plusieurs blocs Le SGBD choisit l organisation des fichiers : l espace est-il bien utilisé? est-il facile et efficace de faire une recherche? est-il facile et efficace de faire une mise à jour? les données sont-elles bien représentées, et en sécurité? Tous les SGBD prennent en charge la gestion des fichiers et de leur contenu Optimisation 2006/

18 Les enregistrements Un enregistrement = une suite de champs stockant les valeurs des attributs Exemples: comment stocker un prix, un nom, une date alors que l on ne dispose que des octets Type Taille en octets INTEGER 4 FLOAT 4 DOUBLE PRECISION 8 DECIMAL(M,D) M, (D+2 si M < D) CHAR(M) M VARCHAR(M) L+1 avec L M Optimisation 2006/

19 Taille variable, valeur NULL Si tous les champs sont de taille fixe et ont une valeur: pas de problème En pratique : certains champs ont une taille variable ou peuvent être à (NULL) pour les champs de taille variable : on précède la valeur par la taille exacte pour les valeurs NULL: on peut indiquer une taille 0 (Oracle) La norme n impose pas de choix, mais dans tous les cas il faut gérer une information complémentaire sur les enregistrements Optimisation 2006/

20 Entête d un enregistrement Les informations complémentaires sont stockées dans l entête d un enregistrement Exemple : table Film (id INT, titre VARCHAR(50), année INT) enregistrement (123, vertigo, NULL) ENTÊTE ID TITRE v e r t i g o pointeur taille masque pointeur: adresse du schéma de la table taille: masque: dernier attribut à NULL Optimisation 2006/

21 Blocs et enregistrements On essaie d éviter qu un enregistrement chevauche deux blocs On veut envisager le cas où la taille d un enregistrement varie On veut adresser un enregistrement pour pouvoir y accéder en une seule lecture Comment gérer un déplacement Les deux derniers problèmes sont particulièrement cruciaux pour l indexation des enregistrements Optimisation 2006/

22 Enregistrements de taille fixe Pour une taille de bloc B et d enregistrement E, on a B/E enregistrements par bloc Exemple B = 4096, E = octets pour stocker des informations sur le bloc ( )/84 = 47 enregistrements dans un bloc L enregistrement 563 est dans le bloc 563/47 +1 = 12 Le bloc 12 contient les enregistrements 11*47+1 = 517 à 12*47 = 564 Le 563 est donc l avant-dernier du bloc Optimisation 2006/

23 Enregistrements de taille fixe (2) Référencement d'un enregistrement première solution adresse physique: référencement de l'enregistrement F l'enregistrement est référencé par le fichier + le bloc + la position dans le bloc deuxième solution (pour mieux gérer les déplacements) adresse logique F1 12 ADRESSE LOGIQUE ADRESSE PHYSIQUE 46 #90887 F Optimisation 2006/

24 Solution intermédiaire On a un adressage physique pour le bloc: F1.12 Au sein du bloc on a une indirection (adressage logique) pour adresser les enregistrements Solution adoptée par Oracle Entête Espace libre Bloc F Indirection Enregistrements Optimisation 2006/

25 Enregistrements de taille variable On agrandit deux fois successivement l enregistrement F Bloc F Bloc F Bloc F Agrandissement de 46 Déplacement de 46 Optimisation 2006/

26 Réorganisation du stockage L adressage indirect donne une certaine souplesse : si un enregistrement s agrandit, mais qu il reste de la place dans le bloc : une réorganisation interne suffit sinon on le déplace et on crée un chaînage dans l entête du bloc Mais la création de chaînage pénalise les performances si possible laisser de l espace libre dans un bloc Optimisation 2006/

27 Organisation dans un fichier Pour un SGBD, un fichier, c est une liste de blocs regroupés sur certaines pistes ou répartis aléatoirement et chaînés entre eux Une bonne organisation a pour but de minimiser l espace: peu d espace vide le temps: les opérations (recherche, insertion, mise à jour, suppression) sur le fichier sont efficaces Explications sur un fichier séquentiel Optimisation 2006/

28 Recherche dans un fichier En l absence d index approprié, le seul moyen de rechercher un enregistrement est de parcourir séquentiellement le fichier La performance du parcours est conditionnée par : la bonne utilisation de l espace (idéalement tous les blocs sont pleins) le stockage le plus contigu possible (même piste, même cylindre, ) On peut faire beaucoup mieux si le fichier est trié sur la clé de recherche (recherche par dichotomie) Optimisation 2006/

29 Mise à jour, suppression, insertion Pour les UPDATE et DELETE : on se ramène à une recherche Pour les INSERT, problème! trouver un bloc avec un espace libre suffisant on ne peut pas se permettre de parcourir le fichier à chaque fois! Première solution : liste doublement chaînée des blocs libres pb: pas d indication sur l espace disponible dans le bloc Optimisation 2006/

30 Mise à jour, suppression, insertion (2) Seconde solution : garder une table des blocs libres Libre (O/N) O N Espace 123 Adresse O Avantage : on peut savoir facilement où trouver l espace nécessaire Optimisation 2006/

31 Application à Oracle Optimisation 2006/

32 Oracle Principales structures logiques dans ORACLE : bloc unité d échange entre mémoire et disque la taille d un bloc ORACLE est un multiple de la taille des blocs du système sous-jacent (bloc physique) extension ensemble de blocs contigus contenant un même type d information segment ensemble d extensions stockant un objet logique (une table, un index...) tablespace contient les tables, les index, du schéma et conserve les données dans les datafiles Optimisation 2006/

33 Oracle (2) Il existe quatre types de segments : les segments de données (data segments) les segments d index (index segments) les segments utilisés pour les transactions (rollback segments) les segments temporaires, par exemple pour les tris (temporary segments) Moins il y a d extensions dans un segment, plus il est efficace Le paramétrage du stockage des données (tables et index) est spécifié dans le tablespace Optimisation 2006/

34 Tables, segments, extensions et blocs Table (e.g. Film) Logique Physique Segment Extension Blocs Oracle Disques Select * from DBA_EXTENT; Optimisation 2006/

35 Les blocs Oracle La structure d un bloc repose sur un adressage physique/ logique, chaque enregistrement ayant une adresse interne Entête (@ du bloc, type du segment, ) Tables représentées dans le bloc Bloc Oracle Adresses des enregistrements Espace libre Enregistrements Un chaînage est créé quand il faut déplacer un enregistrement Optimisation 2006/

36 Gestion de l espace PCTFREE donne l espace libre à préserver au moment de la création d une table ou d un index PCTUSED indique à quel moment le bloc est disponible pour des insertions Oracle maintient un répertoire des blocs disponibles pour insertions Exemple : PCTFREE = 30% et PCTUSED = 70% PCTFREE = 10% et PCTUSED = 80% le second choix est plus efficace, mais plus risqué et plus coûteux Optimisation 2006/

37 Stockage et adressage des enregistrements En règle générale un enregistrement est stocké dans un seul bloc L adresse physique d un enregistrement est le ROWID: le numéro du bloc dans le fichier le numéro de l'enregistrement dans le bloc l'identifiant du fichier Exemple : 00000DD est l adresse du premier enregistrement du bloc DD5 dans le premier fichier. Optimisation 2006/

38 Tablespaces Une base est divisée par l administrateur en tablespaces Chaque tablespace consiste en un (au moins) ou plusieurs fichiers de données (datafiles) La notion de tablespace permet : de contrôler l emplacement physique des données (par exemple: le dictionnaire sur un disque, les données utilisateur sur un autre) de régler l allocation de l espace (extensions) de faciliter la gestion (sauvegarde, protection,etc) Optimisation 2006/

39 Exemple de tablespaces Tablespace 1 Tablespace 2 TABLE A INDEX TABLE C TABLE B DICTIONNAIRE Datafile Structure physique associée à un et un seul tablespace Datafile Structure physique associée à un et un seul tablespace Datafile Structure physique associée à un et un seul tablespace Select * from DBA_DATA_FILES; Optimisation 2006/

40 Création de tablespaces CREATE TABLESPACE TB1 DATAFILE fichiertb1.dat SIZE 50M DEFAULT STORAGE ( INITIAL 100K, NEXT 40K, MAXEXTENTS 20, PCTINCREASE 20); CREATE TABLESPACE TB2 DATAFILE fichiertb2.dat SIZE 2M AUTOEXTEND ON NEXT 5M MAXSIZE 500M DEFAULT STORAGE (INITIAL 128K NEXT 128K MAXEXTENTS UNLIMITED); Optimisation 2006/

41 Gestion d un tablespace Quelques actions disponibles sur un tablespace : on peut mettre un tablespace hors-service ALTER TABLESPACE TB1 OFFLINE; on peut mettre un tablespace en lecture seule ALTER TABLESPACE TB1 READ ONLY; on peut ajouter un nouveau fichier ALTER TABLESPACE ADD DATAFILE fichiertb1-2.dat SIZE 300 M; Optimisation 2006/

42 Affectation de tables à un tablespace On peut placer une table dans un tablespace. Elle prend alors les paramètres de stockage de ce dernier On peut aussi remplacer certaines valeurs CREATE TABLE Film (...) PCTFREE 10 PCTUSED 40 TABLESPACE TB1 STORAGE ( INITIAL 50K NEXT 50K MAXEXTENTS 10 PCTINCREASE 25 ); Optimisation 2006/

43 Consultations -- Tablespaces Select * from user_tablespaces; -- place libre dans les tablespaces Select * from user_free_space; -- segments Select * from user_segments; -- extensions Select * from user_extents; Optimisation 2006/

44 2. Indexation Plan Indexation de fichiers: différentes structures d index B Arbres: structure et algorithmes Hachage: principes Application à Oracle Optimisation 2006/

45 Pourquoi indexer? En l absence d un index, les seules solutions sont: un parcours séquentiel (complexité linéaire) la recherche par dichotomie si le fichier est trié (complexité logarithmique) Avec un index : parcours de l index, puis accès direct à l enregistrement mais attention: les mises à jour sont plus coûteuses Optimisation 2006/

46 Exemple Titre Année Titre Année Vertigo 1958 Annie Hall 1977 Brazil 1984 Jurassic Park 1992 Twin Peaks 1990 Metropolis 1926 Underground 1995 Manhattan 1979 Easy Rider 1969 Reservoir Dogs 1992 Psychose 1960 Impitoyable 1992 Greystoke 1984 Casablanca 1942 Shining 1980 Smoke 1995 La table Films, c est : de films un enregistrement = 120 octets un bloc = 4K 34 enregistrements par bloc environ blocs, 120 Mo Optimisation 2006/

47 Concepts Clé (au sens critère) de recherche liste d un ou plusieurs attributs sur lesquels portent les critères de sélection exemple: titre du film (clé primaire), année du film, titre + année Types de recherche recherche par clé: une valeur à chaque attribut de la clé rechercher Vertigo recherche par intervalle: un intervalle de valeurs à chaque attribut de la clé rechercher les films parus entre 1960 et 1975 recherche par préfixe: une valeur à un préfixe de la clé rechercher les films commençant par V Optimisation 2006/

48 Index non-dense Hypothèse: fichier trié sur la clé Un index, c est: un fichier les enregistrements (ou entrées) de l index sont sous la forme <valeur, adresse> valeur est une valeur de la clé adresse est la position du premier bloc du disque contenant un enregistrement avec cette valeur le fichier est trié sur valeur un seul enregistrement par bloc du fichier de données est représenté dans le fichier d index Optimisation 2006/

49 Exemple Annie Hall Annie Hall 1977 Brazil 1984 Casablanca 1942 Easy Rider 1969 Greystoke 1984 Jurassic Park 1992 Impitoyable 1992 Manhattan 1979 Greystoke Metropolis Smoke Metropolis 1926 Psychose 1960 Reservoir Dogs 1992 Shining 1980 Smoke 1995 Twin Peaks 1990 Underground 1995 Vertigo 1958 Recherche: Par clé : par dichotomie sur l index Par intervalle : recherche de la borne inférieure, accès au fichier, parcours séquentiel Par préfixe : cas particulier de la recherche par intervalle Optimisation 2006/

50 Combien ça coûte? Sur notre fichier de 120 Mo en supposant qu un titre occupe 20 octets, une adresse 8 octets, blocs taille de l index : * (20 + 8) = octets Beaucoup plus petit que le fichier! avantages maximum sur la recherche par dichotomie peut tenir en mémoire problèmes maintenir l ordre sur le fichier et sur l index (notamment au cours des insertions et suppressions) ne peut porter que sur une seule clé Optimisation 2006/

51 Index dense Si on veut indexer un fichier non trié? l index est toujours un fichier il est toujours trié sur la clé mais tous les enregistrements sont représentés L index est dit dense Optimisation 2006/

52 Exemple Annie Hall 1977 Brazil 1984 Casablanca 1942 Easy Rider 1969 Greystoke 1984 Jurassic Park 1992 Impitoyable 1992 Manhattan 1979 Metropolis 1926 Psychose 1960 Reservoir Dogs 1992 Shining 1980 Smoke 1995 Twin Peaks 1990 Underground 1995 Vertigo 1958 Recherche: par clé : comme sur un index non-dense par intervalle (exemple [1950, 1979]) : recherche dans l index de la borne inférieure parcours séquentiel dans l index pour chaque valeur, accès au fichier de données coût beaucoup plus élevé Optimisation 2006/

53 Combien ça coûte? Sur notre fichier de 120 Mo une année = 4 octets, une adresse 8 octets taille de l index : * (4 + 8) = 12 Mo Seulement dix fois plus petit que le fichier la taille d un index ne doit pas être négligée Optimisation 2006/

54 Index multi-niveaux Si l index est trop gros? On l indexe à son tour essentiel: l index est trié, donc on peut l indexer par un second niveau non-dense sinon ça ne servirait à rien donc dès le second niveau on diminue drastiquement la taille on peut continuer jusqu à un niveau avec un seul bloc On obtient une structure séquentielle indexée Optimisation 2006/

55 Exemple Annie Hall 1977 Brazil 1984 Casablanca 1942 Easy Rider 1969 Greystoke 1984 Jurassic Park 1992 Impitoyable 1992 Manhattan 1979 Metropolis 1926 Psychose 1960 Reservoir Dogs 1992 Shining 1980 Smoke 1995 Twin Peaks 1990 Underground 1995 Vertigo 1958 Optimisation 2006/

56 Remarques Il ne peut y avoir qu un index non-dense sur un fichier un index non-dense s appuie sur le tri du fichier et le fichier ne peut être trié que d une seule manière Par contre, il peut y avoir autant d index dense que l on veut ils sont indépendants du fichier de données Optimisation 2006/

57 Arbres B Optimisation 2006/

58 Arbre B Aboutissement des structures d index basées sur l ordre des données c est un arbre équilibré (chaque nœud est à égale distance de la racine) chaque noeud est un bloc de <valeur, adresse> il se réorganise dynamiquement Utilisé universellement! Optimisation 2006/

59 Exemple Un arbre, avec trois niveaux, une racine, les enregistrements répartis dans les noeuds Easy Rider Psychose Brazil Jurassic Park Shining Twin Peaks Annie Hall Casablanca Greystoke Manhattan Reservoir Dogs Smoke Underground Impitoyable Metropolis Vertigo Les recherches sont guidées par l ordre dans chaque noeud Optimisation 2006/

60 Nœud d un arbre B Un noeud est un index local, les enregistrements servant de clé (pas de clés aux feuilles), intercalés avec des pointeurs C < C1 C1 E1 C2 E2 Cn En C1 C < C2 P 1 P 2 P n P n+1 Le sous-arbre pointé par P 2 contient tous les enregistrements dont la clé est comprise entre C 1 et C 2 2n clés par bloc, 2n+1 sous-arbres Optimisation 2006/

61 Construction d un arbre B On suppose qu on ne peut mettre que deux enregistrements par bloc (n=1) Voici le premier bloc de l arbre Brazil Vertigo Optimisation 2006/

62 Construction d un arbre B Ici le bloc déborde. On prend l élément du milieu pour le monter dans un nouveau noeud Nouveau nœud Brazil Twin Peaks Vertigo Optimisation 2006/

63 Construction d un arbre B Après répartition des enregistrements Twin Peaks Brazil Vertigo Optimisation 2006/

64 Construction d un arbre B Après insertion de Underground et Easy Rider Twin Peaks Brazil Easy Rider Underground Vertigo Maintenant il faut mettre Psychose Optimisation 2006/

65 Construction d un arbre B Insertion de Psychose: le noeud déborde, et l élément du milieu doit monter Twin Peaks Brazil Easy Rider Psychose Underground Vertigo Optimisation 2006/

66 Construction d un arbre B Après remontée de Easy Rider, et répartition des autres enregistrements Easy Rider Twin Peaks Brazil Psychose Underground Vertigo Optimisation 2006/

67 Construction d un arbre B On insère Greystoke: ça marche Easy Rider Twin Peaks Brazil Greystoke Psychose Underground Vertigo Maintenant il faut mettre Shining Optimisation 2006/

68 Construction d un arbre B On insère Shining : ça déborde Easy Rider Twin Peaks Brazil Greystoke Psychose Shining Underground Vertigo Optimisation 2006/

69 Construction d un arbre B On a remonté Psychose, mais maintenant c est la racine qui déborde Easy Rider Psychose Twin Peaks Brazil Greystoke Shining Underground Vertigo Optimisation 2006/

70 Construction d un arbre B Alors on a créé une nouvelle racine Il faut insérer Annie Hall et Jurassic Park Psychose Easy Rider Twin Peaks Brazil Greystoke Shining Underground Vertigo Optimisation 2006/

71 Construction d un arbre B On a inséré sans problème Annie Hall et Jurassic Park Psychose Easy Rider Twin Peaks Annie Hall Brazil Greystoke Jurassic Park Shining Underground Vertigo Maintenant il faut insérer Metropolis Optimisation 2006/

72 Ça déborde encore Construction d un arbre B Psychose Easy Rider Twin Peaks Annie Hall Brazil Greystoke Jurassic Park Metropolis Shining Underground Vertigo Optimisation 2006/

73 Après réorganisation Construction d un arbre B Psychose Easy Rider Jurassic Park Twin Peaks Annie Hall Brazil Greystoke Metropolis Shining Underground Vertigo Il faut insérer Manhattan, Reservoir Dogs et Impitoyable Optimisation 2006/

74 Construction d un arbre B On a inséré Manhattan, Reservoir Dogs et Impitoyable Psychose Easy Rider Jurassic Park Twin Peaks Annie Hall Brazil Greystoke Impitoyable Manhattan Metropolis Reservoir Dogs Shining Underground Vertigo Au tour de Casablanca Optimisation 2006/

75 Ça déborde à nouveau Construction d un arbre B Psychose Easy Rider Jurassic Park Twin Peaks Annie Hall Brazil Casablanca Greystoke Impitoyable Manhattan Metropolis Reservoir Dogs Shining Underground Vertigo Optimisation 2006/

76 On remonte d un niveau Construction d un arbre B Psychose Brazil Easy Rider Jurassic Park Twin Peaks Annie Hall Casablanca Greystoke Manhattan Reservoir Dogs Underground Impitoyable Metropolis Shining Vertigo Optimisation 2006/

77 On a inséré dans la racine Construction d un arbre B Easy Rider Psychose Brazil Jurassic Park Twin Peaks Annie Hall Casablanca Greystoke Manhattan Reservoir Dogs Underground Impitoyable Metropolis Shining Vertigo Il reste Smoke Optimisation 2006/

78 Construction d un arbre B Ça déborde encore et toujours Easy Rider Psychose Brazil Jurassic Park Twin Peaks Annie Hall Casablanca Greystoke Manhattan Reservoir Dogs Underground Impitoyable Metropolis Shining Vertigo Smoke Optimisation 2006/

79 Le résultat final! Construction d un arbre B Easy Rider Psychose Brazil Jurassic Park Shining Twin Peaks Annie Hall Casablanca Greystoke Manhattan Reservoir Dogs Smoke Underground Impitoyable Metropolis Vertigo Taux de remplissage: 16/(11*2) = 72% Optimisation 2006/

80 Arbre B+ Inconvénient de l arbre B il est plaçant (un seul par fichier) les enregistrements sont déplacés pendant la construction (pb d adressage) suppression compliquée L arbre B+ est une variante non plaçante il est construit uniquement sur les clés toutes les clés sont conservées dans les feuilles dans les feuilles, à chaque clé est associée l adresse de l enregistrement feuilles liées entre elles (recherche par intervalle) Optimisation 2006/

81 Exemple Easy Rider Manhattan Shining Index Annie Hall Brazil Casablanca Easy Rider C Easy Rider Greystoke Impitoyable Jurassic Park Manhattan Easy Rider < C C Manhttan Metropolis Psychose Reservoir Dogs Shining Smoke Twin Peaks Underground Vertigo Données Vertigo 1958 Brazil 1984 Twin Peaks 1990 Underground 1995 Easy Rider 1969 Psychose 1960 Greystoke 1984 Shining 1980 Annie Hall 1977 Jurassic Park 1992 Metropolis 1926 Manhattan 1979 Reservoir Dogs 1992 Impitoyable 1992 Casablanca 1942 Smoke 1995 Optimisation 2006/

82 Autre exemple Index Données Vertigo 1958 Brazil 1984 Twin Peaks 1990 Underground 1995 Easy Rider 1969 Psychose 1960 Greystoke 1984 Shining 1980 Annie Hall 1977 Jurassic Park 1992 Metropolis 1926 Manhattan 1979 Reservoir Dogs 1992 Impitoyable 1992 Casablanca 1942 Smoke 1995 Optimisation 2006/

83 Recherche par clé SELECT * FROM Film WHERE titre = Impitoyable on lit la racine de l arbre: Impitoyable étant situé dans l ordre lexicographique entre Easy Rider et Manhattan, on doit suivre le chaînage situé entre ces deux titres on lit le bloc feuille dans lequel on trouve le titre Impitoyable associé à l adresse de l enregistrement dans le fichier des données il reste à lire l enregistrement Optimisation 2006/

84 Recherche par intervalle SELECT * FROM Film WHERE annee BETWEEN 1960 AND 1975 on fait une recherche par clé pour l année 1960 on parcourt les feuilles de l arbre en suivant le chaînage, jusqu à l année 1975 à chaque fois on lit l enregistrement Attention, les accès aux fichiers peuvent coûter très cher Optimisation 2006/

85 Recherche par préfixe SELECT * FROM Film WHERE titre LIKE M% revient à une recherche par intervalle SELECT * FROM Film WHERE titre BETWEEN MAAAAAA... AND MZZZZZZ... contre-exemple : SELECT * FROM Film WHERE titre LIKE %e Ici l index est inutilisable Optimisation 2006/

86 Capacité d un arbre B+ Avec un niveau d index (la racine seulement), on peut donc référencer 146 films Avec deux niveaux, on indexe 146 blocs de 146 films chacun, soit = films Avec trois niveaux, on indexe = films Enfin avec quatre niveaux, on indexe plus de 450 millions de films. L efficacité d un arbre B+ dépend de la taille de la clé: plus elle est petite, plus l index sera petit et efficace Optimisation 2006/

87 Efficacité de l arbre B+ Il est (presque) parfait! on a très rarement besoin de plus de trois niveaux le coût d une recherche par clé est le nombre de niveaux, plus 1 supporte les recherches par clé, par intervalle, par préfixe dynamique On peut juste lui reprocher d occuper de la place Optimisation 2006/

88 Synthèse arbre B+ Autant d arbres B+ que l on souhaite (titre, année, ) Très rarement besoin de plus de 4 niveaux Coût d une recherche par clé est faible Support des recherches par clé, par intervalle ou par préfixe Dynamique Par contre, taille potentiellement importante Optimisation 2006/

89 Hachage Optimisation 2006/

90 Présentation Un concurrent de l arbre-b+ meilleur pour les recherches par clé n occupe aucune place Mais se réorganise difficilement ne supporte pas les recherches par intervalle Optimisation 2006/

91 Principe On calcule la position d un enregistrement d après la clé une fonction de hachage h associe des valeurs de clé à des adresses de bloc h doit répartir uniformément les enregistrements dans les n blocs alloués à la structure Recherche d un enregistrement calcul de l endroit où il se trouve Simple et efficace! Optimisation 2006/

92 Exemple On veut créer une structure de hachage pour nos 16 films (hypothèse : 4 enregistrements par bloc) on alloue 5 blocs (pour garder une marge de manœuvre) un répertoire à 5 entrées (0 à 4) pointe vers les blocs on définit la fonction h(titre) = rang Alphabet (titre[0]) mod 5 Entrées Répertoire Blocs Jurassic Park 1992 Twin Peaks 1990 Easy Rider 1969 Impitoyable 1992 Shining 1980 Smoke 1995 Annie Hall 1977 Underground 1995 Psychose 1960 Brazil 1984 Vertigo 1958 Greystoke 1984 Manhattan 1979 Metropolis 1926 Casablanca 1942 Reservoir Dogs 1992 Optimisation 2006/

93 Par clé: possible Recherches SELECT * FROM Film WHERE titre = Impitoyable Par préfixe: ici, possible SELECT * FROM Film WHERE titre LIKE M% Par intervalle: non! SELECT * FROM Film WHERE titre BETWEEN Annie Hall AND Easy Rider Optimisation 2006/

94 Mises à jour Plus délicat La structure simple décrite précédemment n est pas dynamique On ne peut pas changer un enregistrement de place Donc il faut créer un chaînage de blocs quand un bloc déborde Et donc les performances se dégradent... Optimisation 2006/

95 Exemple Insertion de Citizen Kane, 1941 Entrées Répertoire Blocs Jurassic Park 1992 Twin Peaks 1990 Easy Rider 1969 Impitoyable 1992 Shining 1980 Smoke 1995 Annie Hall 1977 Underground 1995 Psychose 1960 Brazil 1984 Vertigo 1958 Greystoke 1984 Manhattan 1979 Metropolis 1926 Casablanca 1942 Reservoir Dogs 1992 Citizen Kane 1941 Optimisation 2006/

96 Hachage dynamique Objectif : réorganiser la table de hachage en fonction des insertions et suppressions le nombre d entrées dans le répertoire est une puissance de 2 la fonction h donne toujours un entier sur 4 octets (32 bits) Idée de base: on utilise les n premiers bits du résultat de la fonction, avec n < 32 Optimisation 2006/

97 Exemple Hachage des 16 films titre h(titre) Vertigo Brazil Twin Peaks Underground Easy Rider Psychose Greystoke Shining Optimisation 2006/

98 Construction de la table An départ, on utilise seulement le premier bit de la fonction deux valeurs possibles : 0 et 1 donc deux entrées, et deux blocs l affectation d un enregistrement dépend du premier bit de sa fonction de hachage Pour l instant, on reste dans un cadre classique Optimisation 2006/

99 Avec 5 films Brazil Twin Peaks Vertigo Underground Psychose Underground Easy Rider Vertigo Easy Rider Brazil Twin Peaks Supposons 3 films par bloc L'insertion de Psychose (valeur ) entraîne le débordement du premier bloc on double la taille du répertoire on alloue un nouveau bloc pour l'entrée 01 Les entrées 10 et 11 pointent sur le même bloc On agrandit seulement ce qui est nécessaire Optimisation 2006/

100 Insertions suivantes Plusieurs cas on insère dans un bloc plein, mais plusieurs entrées pointent dessus on alloue un nouveau bloc, et on répartit les pointeurs on insère dans un bloc plein, associé à une entrée on double à nouveau le nombre d entrées Problème : le répertoire peut devenir très grand Optimisation 2006/

101 Exemple On insère Greystoke et Shining Easy Rider Vertigo Underground Psychose Brazil Greystoke Twin Peaks Shining Optimisation 2006/

102 Comparaison hachage/arbre-b La hachage, intéressant quand : le jeux de données est figé les recherches se font par clé Ce sont des situations relativement courantes: le hachage n occupe alors pas de place Sinon l arbre-b est meilleur Optimisation 2006/

103 Index bitmap Optimisation 2006/

104 Le problème Comment indexer une table sur un attribut qui ne prend qu un petit nombre de valeurs? avec un arbre B: pas très bon car chaque valeur est peu sélective avec un hachage : pas très bon non plus car il y a beaucoup de collisions Or situation fréquente, notamment dans les entrepôts de données Optimisation 2006/

105 Exemple Codification des films rang titre genre... 1 Vertigo Suspense... 2 Brazil Science-Fiction... 3 Twin Peaks Fantatisque 4 Underground Drame 5 Easy Rider Drame... 6 Psychose Drame... 7 Greystoke Aventures... 8 Shining Fantastique Optimisation 2006/

106 Principes de l index bitmap Soit un attribut A, prenant n valeurs possibles [v 1,,v n ] on crée n tableaux de bit, un pour chaque valeur v i ce tableau contient un bit pour chaque enregistrement e le bit d un enregistrement e est à 1 si e.a = v i est à 0 sinon Optimisation 2006/

107 Exemple Drame Science-Fiction Comédie Optimisation 2006/

108 Soit la requête Recherche SELECT * FROM Film WHERE genre= Drame on prend le tableau pour la valeur Drame on garde toutes les cellules à 1 on accède aux enregistrements par l adresse très efficace si n, le nombre de valeurs, est petit Optimisation 2006/

109 Autre recherche SELECT COUNT(*) FROM Film WHERE genre IN ( Drame, Comédie ) on compte le nombre de 1 dans le tableau Drame on compte le nombre de 1 dans le tableau Comédie on fait la somme et c est fini! Optimisation 2006/

110 Application à Oracle Optimisation 2006/

111 Les choix d Oracle Oracle propose à peu près toutes les structures d index vues précédemment par défaut l index est un arbre B+ il est possible d organiser une table en arbre B (plaçant) le hachage (non dynamique) existe aussi les index bitmap aussi Optimisation 2006/

112 Arbres B et B+ Dès qu on utilise une commande PRIMARY KEY, Oracle crée un arbre B+ sur la clé primaire l arbre est stocké dans un segment d index On peut organiser la table en arbre B avec l option ORGANIZATION INDEX plus efficace car évite les accès par adresse moins valable pour les enregistrements de grande taille Optimisation 2006/

113 Hachage Structure appelée Hash Cluster Utilisée en deux étapes on crée la structure avec tous ses paramètres on affecte une ou plusieurs tables à la structure Attention, le hachage dans Oracle n est pas dynamique Optimisation 2006/

114 Création d un Hash Cluster CREATE CLUSTER HachFilms (id INT) SIZE 500 HASHKEYS 500; la clé de hachage est de type INTEGER ; Oracle fournit automatiquement une fonction avec de bonnes propriétés nombre de valeurs de la fonction donné par HASHKEYS taille de chaque entrée estimée par SIZE dans l exemple ci-dessus, 8 entrées par bloc Optimisation 2006/

115 Affectation à un Hash Cluster On indique la structure d affectation dans la commande CREATE TABLE CREATE TABLE Film (idfilm INT,... ) CLUSTER HachFilms (idfilm) Assez délicat à paramétrer Demande un contrôle régulier par un DBA Optimisation 2006/

116 Les clusters Le cluster (regroupement) est une structure permettant d optimiser les jointures Par exemple, pour les tables Cinéma et Salle qui sont fréquemment jointes sur l attribut idcinema : on groupe les n-uplets de Cinéma et de Salle ayant même valeur pour l attribut idcinema on stocke ces groupes de n-uplets dans les blocs d un segment spécial de type cluster on crée un index sur idcinema Optimisation 2006/

117 Exemple Clé de regroupement (idcinéma) nomcinéma Adresse 1209 Le Rex 2 Bd Italiens idsalle nomsalle Capacité 1098 Grande Salle Salle Salle nomcinéma Adresse Kino 243 Bd Raspail idsalle nomsalle Capacité 340 Salle Optimisation 2006/

118 3. Optimisation Plan Introduction et exemple Optimisation logique et physique Application à Oracle Optimisation 2006/

119 Que veut-on optimiser? On peut en fait définir plusieurs critères : temps d exécution : temps total d exécution, souvent utilisé comme critère par défaut temps de réponse : temps pour obtenir la première ligne du résultat. À considérer pour les traitements en tâche de fond débit transactionnel : recherche de la fluidité des traitements concurrents transfert réseau : pour les applications distribuées Un module du SGBD, l optimiseur, est chargé de : prendre en entrée une requête, et la mettre sous forme d opérations se fixer comme objectif l optimisation d un certain paramètre (en général le temps d exécution) construire un programme s appuyant sur les index existants, et les opérations disponibles Optimisation 2006/

120 Optimisation d une requête Deux techniques d optimisation algébrique/logique on représente la requête sous forme d arbre on applique les transformations statistique/physique on estime le coût d exécution en prenant en compte les opérations à effectuer (sélections, jointures) les index disponibles la taille des relations On obtient un plan d exécution, composé: du plan d exécution logique (PEL) et du plan d exécution physique (PEP) Optimisation 2006/

121 Étapes Requête SQL analyse Arbre traduction règles Plan d exécution logique exécution Réponse estimation de la taille du résultat PEL amélioré statistiques PEP i sélection du meilleur plan PEL + taille prise en compte des plans physiques estimation des coûts {PEP 1, PEP 2, } PEP: Plan d exécution physique {(PEP 1,C 1 ),(PEP 2,C 2 ), } Optimisation 2006/

122 Un exemple (trop simple) Film (idfilm, titre, année, genre, résumé) Artiste (idartiste, nom, prénom, annéenaissance) Rôle (idartiste, idfilm, nomrôle) SELECT nom FROM Artiste A, Rôle R WHERE R.idArtiste = A.idArtiste AND idfilm=20; On suppose Artiste = 100 n-uplets, et Rôle = 500 n-uplets Optimisation 2006/

123 Exemple (2) Première étape: plan d'exécution logique les stratégies possibles (entre autres) ((A join R) where idfilm=20)[nom] (A join (R where idfilm=20))[nom] π nom π nom σ idfilm=20 idartiste idartiste Artiste σ idfilm=20 Artiste Rôle Rôle Optimisation 2006/

124 Exemple (3) Deuxième étape: plan d'exécution physique les opérations à effectuer les sélections (idfilm = 20) les jointures (idartiste) Troisième étape: coût de l'exécution physique quels sont les index dont on dispose? Optimisation 2006/

125 Évaluation de performances Soient T la taille du résultat intermédiaire T {T} le nombre de n-uplets examinés pour produire T Stratégie 1: ((A join R) where idfilm=20)[nom] T = A join R R = 500 T = T where idfilm=20 = 5 (en moyenne) T = T [nom] 5 {T} 100 * 500 = (boucles imbriquées) {T } = 500 {T } = 5 (en moyenne) Optimisation 2006/

126 Évaluation de performances (2) Stratégie 2: (A join (R where idfilm=20))[nom] T = R where idfilm=20 = 5 (en moyenne) T = A join T T = 5 T = T [nom] 5 {T} 500 {T } 500 {T } 5 Optimisation 2006/

127 Comparaison Stratégie 2 plus efficace que stratégie 1 En ce qui concerne la mémoire taille max stratégie 1: 500 taille max stratégie 2: 5 gain: 99% En ce qui concerne le CPU nombre de n-uplets visités stratégie 1: nombre de n-uplets visités stratégie 2: 1005 gain: 98% Attention, l exemple présenté est très simpliste Optimisation 2006/

128 Optimisation logique et physique Optimisation 2006/

129 Optimisation logique: les propriétés Commutativité des jointures: R S S R Associativité des jointures: (R S) T R (S T) Regroupement des sélections: σ A='a B='b' (R) σ A='a' (σ B='b' (R)) Commutativité de la sélection et de la projection π A1,A2, Ap (σ Ai='a' (R)) σ Ai='a' (π A1,A2, Ap (R)) Distributivité de la sélection sur l union (ou différence) σ A='a' (R S) σ A='a' (R) σ A='a' (S) Commutativité de la projection et de la jointure π A1 ApB1 Bq (R Ai=Bj S) π A1 Ap (R) Ai=Bj π B1 Bq (S) Distributivité de la projection sur l union π A1A2 Ap (R S) π A1A2 Ap (R) π A1A2 Ap (S) Optimisation 2006/

130 Optimisation logique En français séparer les sélections avec plusieurs prédicats en plusieurs sélections à un prédicat descendre les sélections le plus bas possible dans l arbre (pour minimiser les jointures) regrouper les sélections sur une même relation distribuer les sélections sur les jointures, les unions, les différences descendre les projections le plus bas possible regrouper les projections sur une même relation Il en existe d autres fonction d'agrégation, élimination des doublons, composition Optimisation 2006/

131 Exécution logique Chercher tous les films avec James Stewart, parus en 1958 SELECT titre FROM Film f, Role r, Artiste a WHERE a.nom = Stewart AND a.prenom= James AND f.idfilm = r.idfilm AND r.idacteur = a.idartiste AND f.annee = 1958 Optimisation 2006/

132 Exemple Première requête π titre (σ année=1958 and nom= Stewart and prénom= James (Film idfilm=idfilm (Rôle Artiste))) On sépare les sélections π titre (σ année=1958 (σ nom= Stewart (σ prénom= James (Film idfilm=idfilm (Rôle Artiste))))) On les descend dans l arbre π titre (σ année=1958 (Film) idfilm=idfilm (Rôle σ nom= Stewart (σ prénom= James (Artiste)))) Optimisation 2006/

133 Optimisation physique Les sélections Les jointures Optimisation 2006/

134 La sélection Deux possibilités pour accéder à un enregistrement Accès séquentiel (balayage): parcours de tous les enregistrements du fichier on lit, bloc par bloc, le fichier quand un bloc est en mémoire, on traite les enregistrements qu il contient opération coûteuse si la table est grosse il faut limiter la taille (compactage, choix de types plus petits) il faut effectuer des lectures contiguës Optimisation 2006/

135 La sélection (2) Accès par adresse: si on connaît l adresse du ou des enregistrements concernés, on peut aller lire directement les blocs et obtenir ainsi un accès optimal opération en deux étapes : on obtient l adresse des enregistrements à rechercher (en général avec un index) avec cette adresse on va chercher le bloc, et on lit l enregistrement très performant : une ou deux lectures suffisent en général (pour un enregistrement) Optimisation 2006/

136 Coût Le fichier fait 500 Mo, une lecture de bloc prend 0,01 s (10 millisecondes) Un parcours séquentiel lira tout le fichier (ou la moitié pour une recherche par clé) soit 5 secondes Une recherche par index implique 2 ou 3 accès pour parcourir l index, et un seul accès pour lire l enregistrement soit 4 x 0,01 = 0,04 s (4 millisecondes) En gros, c est mille fois plus cher Optimisation 2006/

137 Les jointures Jointure sans index le plus simple : jointure par boucles imbriquées le plus courant : jointure par tri-fusion parfois le meilleur : jointure par hachage (pas détaillée ici) Jointure avec index avec un index : jointure par boucles indexées avec deux index : on fait comme si on avait un seul index Optimisation 2006/

138 Jointures sans index Boucles imbriquées: bête et méchant Comparaison Association Vertigo 1958 Annie Hall 1977 Spielberg Jurassic Park Hitchcock Psychose Allen Manhattan Lang Metropolis Hitchcock Vertigo Allen Annie Hall Kubrik Shining Spielberg Jurassic Park Hitchcock Psychose Allen Manhattan Lang Metropolis Hitchcock Vertigo Allen Annie Hall Kubrik Shining Optimisation 2006/

139 Jointures sans index (2) 1. Boucles imbriquées parcours d une table, et pour chaque ligne, parcourir l autre en comparant la jointure est associative: R T = T R, donc mettre à gauche la relation la moins volumineuse bénéfice si on a la possibilité de placer les deux relations en mémoire 2. Jointure par tri fusion plus efficace que les boucles imbriquées pour de grosses tables on trie les deux tables sur les colonnes de jointures on effectue la fusion Remarques le tri coûte cher on ne peut rien obtenir tant que le tri n est pas fini Optimisation 2006/

140 Exemple tri-fusion Jointures sans index (3) Allen Annie Hall 1977 Spielberg Jurassic Park 1992 Allen Manhattan 1979 Fusion Allen Spielberg Allen Lang Hitchcock Kubrik Hitchcock Annie Hall Jurassic Park Manhattan Metropolis Psychose Shining Vertigo Annie Hall 1977 Brazil 1984 Easy Rider 1969 Greystoke 1984 Jurassic Park 1992 Manhattan 1979 Metropolis 1926 Psychose 1960 Tri Tri Réalisateur Film Optimisation 2006/

141 Jointures avec index Avec un index, on utilise les boucles imbriquées indexées on balaye la table non indexée pour chaque ligne, on utilise l attribut de jointure pour traverser l index sur l autre table Avantages très efficace (un parcours, plus des recherches par adresse) favorise le temps de réponse et le temps d exécution Optimisation 2006/

142 Jointures avec index (2) Avec deux index fusionner les deux index : on obtient des paires d adresse pour chaque paire, aller chercher la ligne A, la ligne B Problématique car beaucoup d accès aléatoires En pratique : on se ramène à la jointure avec un index on prend la petite table comme table de parcours Optimisation 2006/

143 Plans d exécution Qu est-ce qu un plan d exécution? un programme combinant des opérateurs physiques (chemins d accès et traitements de données) Il a la forme d un arbre : chaque noeud est un opérateur qui prend des données en entrée applique un traitement produit les données traitées en sortie La phase d optimisation proprement dite : pour une requête, le système a le choix entre plusieurs plans d exécution Optimisation 2006/

144 Plans d exécution (2) Un plan est composé d un plan d exécution logique (PEL) et un plan d exécution physique (PEP) Deux plans diffèrent par l ordre des opérations - PEL (sélection avant jointure, ) les algorithmes - PEP (boucles imbriquées, tri/fusion, ) les chemins d accès - PEP (index disponible ou pas, ) Pour chaque plan on peut estimer : le coût de chaque opération la taille du résultat Objectif : diminuer le plus vite possible la taille des données manipulées Optimisation 2006/

145 Exemple Chercher tous les films avec James Stewart, parus en 1958 SELECT titre FROM Film f, Role r, Artiste a WHERE a.nom = Stewart AND a.prenom= James AND f.idfilm = r.idfilm AND r.idacteur = a.idartiste AND f.annee = 1958 Il y a autant de plans que de «blocs» dans une requête Pas d imbrication: un seul bloc Optimisation 2006/

146 Exemple: un niveau d imbrication SELECT titre FROM Film f, Role r WHERE f.idfilm = r.idfilm AND f.annee = 1958 AND r.idacteur IN (SELECT idartiste FROM Artiste WHERE nom= Stewart AND prenom= James ) Un niveau d imbrication (inutile): moins bon Optimisation 2006/

147 Exemple: deux niveaux d imbrication SELECT titre FROM Film WHERE annee = 1958 AND idfilm IN (SELECT idfilm FROM Role WHERE idacteur IN (SELECT idartiste FROM Artiste WHERE nom= Stewart AND prenom= James )) Mauvais: on force le plan, et il est inefficace on parcourt tous les films parus en 1958 pour chaque film, on cherche les rôles du film (pas d index disponible) pour chaque rôle on regarde si c est James Stewart Bilan: ça va coûter cher Optimisation 2006/

148 Exemples de plans d exécution Sans index sur nom, prénom Projection titre Jointure idfilm=idfilm Jointure idacteur=idartiste Sélection 1958 Sélection James Stewart Rôle Adresse Film Adresse Artiste Séquentiel Index Rôle(idActeur,idFilm) idacteur Index Film(idFilm) idfilm Optimisation 2006/

149 Exemples de plans d exécution (2) Avec index sur nom, prénom Projection titre Jointure idfilm=idfilm Jointure idacteur=idartiste Sélection 1958 Artiste Adresse Rôle Adresse Film Adresse Index Artiste(nom,prénom) James Stewart Index Rôle(idActeur,idFilm) idacteur Index Film(idFilm) idfilm Optimisation 2006/

150 Exemples de plans d exécution (3) Sans aucun index Projection titre Fusion idacteur=idartiste Tri idacteur Fusion idfilm=idfilm Tri idfilm Tri idfilm Tri idartiste Sélection 1958 Sélection James Stewart Film Séquentiel Rôle Séquentiel Artiste Séquentiel Optimisation 2006/

151 Application à Oracle Optimisation 2006/

152 L optimiseur Oracle L optimiseur ORACLE suit une approche classique : génération de plusieurs plans d exécution estimation du coût de chaque plan généré choix du meilleur et exécution Tout ceci est automatique, mais il est possible d influer, voire de forcer le plan d exécution Optimisation 2006/

153 Estimation du coût d un plan d exécution Beaucoup de paramètres entrent dans l estimation du coût les chemins d accès disponibles les opérations physiques de traitement des résultats intermédiaires des statistiques sur les tables concernées (taille, sélectivité) les statistiques sont calculées par appel explicite à l outil ANALYSE les ressources disponibles Optimisation 2006/

154 Optimiseur basé sur les règles Priorité Description 1 Accès à un enregistrement par ROWID 2 Accès à un enregistrement dans un cluster 3 Accès à un enregistrement dans une table de hachage (hash cluster ) 4 Accès à un enregistrement par clé unique (avec un index) Balayage complet de la table Optimisation 2006/

155 Optimiseur basé sur les coûts Principaux paramètres : OPTIMIZER_MODE (RULE, CHOOSE, FIRST_ROW, ALL_ROWS) SORT_AREA_SIZE (taille de la zone de tri) HASH_AREA_SIZE (taille de la zone de hachage) HASH_JOIN_ENABLED considère les jointures par hachage Optimisation 2006/

156 Création des statistiques Calcul de la taille et du nombre de lignes : ANALYSE TABLE Film COMPUTE STATISTICS FOR TABLE Analyse des index : ANALYSE TABLE Film COMPUTE STATISTICS FOR ALL INDEX Analyse de la distribution des valeurs : ANALYSE TABLE Film COMPUTE STATISTICS FOR COLUMNS titre, genre SIZE 20 Optimisation 2006/

157 Chemins d accès Parcours séquentiel (FULL TABLE SCAN) Par adresse (ACCESS BY ROWID) Parcours de regroupement (CLUSTER SCAN) On récupère alors dans une même lecture les n-uplets des 2 tables du cluster Recherche par hachage (HASH SCAN) Parcours d index (INDEX SCAN) Optimisation 2006/

158 Opérations physiques Voici les principales : INTERSECTION : intersection de deux ensembles de n-uplets CONCATENATION : union de deux ensembles FILTER : élimination de n-uplets (sélection) PROJECTION : opération de l algèbre relationnelle D autres opérations sont liées aux algorithmes de jointures Optimisation 2006/

159 Algorithmes de jointure de Oracle ORACLE utilise trois algorithmes de jointures : boucles imbriquées quand il y a au moins un index opération NESTED LOOP tri/fusion quand il n y a pas d index opération SORT et MERGE jointure par hachage quand il n y a pas d index opération HASH JOIN Optimisation 2006/

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

É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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Qu'est qu'un tablespace?

1. Qu'est qu'un tablespace? 1/14 1. Qu'est qu'un tablespace? Un tablespace est un espace logique qui contient les objets stockés dans la base de données comme les tables ou les indexes. Un tablespace est composé d'au moins un datafile,

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

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

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

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

1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228

1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228 Intro Modèle Algèbre SQL Stockage Intro Modèle Algèbre SQL Stockage Plan du cours Les Bases de Données Rattrapages École Centrale de Paris Nicolas Travers Équipe Vertigo Laboratoire CEDRIC Conservatoire

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

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

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

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

Limitations of the Playstation 3 for High Performance Cluster Computing

Limitations of the Playstation 3 for High Performance Cluster Computing Introduction Plan Limitations of the Playstation 3 for High Performance Cluster Computing July 2007 Introduction Plan Introduction Intérêts de la PS3 : rapide et puissante bon marché L utiliser pour faire

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

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

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

Bases de données documentaires et distribuées Cours NFE04

Bases de données documentaires et distribuées Cours NFE04 Bases de données documentaires et distribuées Cours NFE04 Introduction a la recherche d information Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département

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

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

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

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

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

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

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

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

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

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Cours de bases de données. Philippe Rigaux

Cours de bases de données. Philippe Rigaux Cours de bases de données Philippe Rigaux 13 juin 2001 2 TABLE DES MATIÈRES 3 Table des matières 1 Introduction 7 2 Présentation générale 9 2.1 Données, Bases de données et SGBD.............................

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

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

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

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

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs, relations,

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

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

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

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

TP Administration Oracle

TP Administration Oracle Ingénieurs 2000 Informatique et Réseaux TP Administration Oracle DIOP Ngoné ESSAIDI Abderrahim Février 2008 1 Sommaire Sommaire... 2 Introduction... 3 1. Déploiement d application... 4 1.1 Résumé du besoin...

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

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

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

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

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

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

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

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 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage

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

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

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

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

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

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

Bases de données élémentaires Maude Manouvrier

Bases de données élémentaires Maude Manouvrier Licence MI2E- 1ère année Outils en Informatique Bases de données élémentaires Maude Manouvrier Définitions générales et positionnement du cours dans la formation Vocabulaire relatif aux bases de données

Plus en détail

Systèmes de Gestion de Bases de Données

Systèmes de Gestion de Bases de Données Systèmes de Gestion de Bases de Données Luiz Angelo STEFFENEL DUT Informatique 2ème année IUT Nancy Charlemagne Vues Vue : une table virtuelle de la base de données dont le contenu est défini par une requête

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

Architectures, modèles et langages de données

Architectures, modèles et langages de données Architectures, modèles et langages de données OLAP Hypercube Ingénierie des bases de données Fascicule 3 c,d Volume I Langage SQL, indexation et vue relationnelle André Gamache 2005 Architectures, Modèles

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

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Un modèle de données définit un mode de représentation de l information selon trois composantes : 1. Des structures de données. 2. Des contraintes qui permettent

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

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

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

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

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

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération

Plus en détail

Administration des Bases de Données Oracle

Administration des Bases de Données Oracle Administration des Bases de Données Oracle Plan Introduction à l administration de données Structure d une base de données Architecture interne d Oracle Sécurité des données Utilitaires Administration

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

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

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

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

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

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

environnements SQL Server?

environnements SQL Server? Comment booster les performances de vos environnements SQL Server? performance technology Innovators in Performance and Reliability Technologies Comment booster les performances de vos environnements SQL

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

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

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

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

Partie II Cours 3 (suite) : Sécurité de bases de données Partie II Cours 3 (suite) : Sécurité de bases de données ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://odile.papini.perso.esil.univmed.fr/sources/ssi.html Plan du cours 1 Introduction

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

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail