Académique Documents
Professionnel Documents
Culture Documents
1/263
2/263
Transparents tir s de : e
Gestion et Administration des Bases de Donn es. Application a Sybase e ` et Oracle. N. Boudjlida, Dunod, Collection Sciences Sup. Octobre 2003. Bases de donn es et syst` mes dinformations. Le mod` le e e e relationnel:langages, syst` mes et m thodes. e e N. Boudjlida, Dunod, Collection Sciences Sup. Septembre 1999.
3/263
4/263
1. Fonctions dun SGBD 2. Typologie des SGBD 3. Situation dans larchitecture des applications 4. Les langages des SGBD relationnels 5. Architecture des SGBD
1. 2. 3. 4. 5.
4.
5/263
6/263
Classe de
CODASYL
SGBD Relationnel
Relationnel tendu e
Objet-Relationnel
6. Non ou semi-tructur es e
7/263
4- Langages Relationnels
Type Alg brique e Pr dicatifs e ` a) a variable n-uplet ` b) a variable domaine Fondement Th orie des ensembles e Logique du 1er ordre
8/263
` SQL dialecte fond sur lalg` bre et le calcul pr dicatif a variable e e e n-uplet
1. 2.
9/263
10/263
Caract ristiques : e
3. 4. 5.
Remarque : Jointure ( =
11/263
12/263
Si R est un nom de relation alors R est une expression alg brique (ea) e
13/263
14/263
15/263
16/263
Chapitre 1 Introduction (p. 3) Chapitre 2 El ments darchitecture du SGBD Oracle (p. 16) e Chapitre 3 Organisation et stockage de donn es (p. 36) e Chapitre 4 Traitement des requ tes (p. 156) e Bibliographie (p. 262)
Sommaire :
17/263
18/263
concernent les objets dun utilisateur accessibles par cet utilisateur Exemple : Vue USER TABLES = tables dun utilisateur
1. Processus darri` re-plan e 2. Zone Globale Syst` me (System Global Area, SGA) : tampons e donn es, journal partag s e e
Dictionnaire : Tables et Vues
Cr ees dans chaque base, dans lespace SYSTEM e Propri taire = sys, utilisateur privil gi e e e Non modiables (sauf la table sys.aud$ )
19/263
20/263
Vues V$ xxx :
etendent les informations des vues USER par des informations sur les objets auxquels il a acc` s e Vue ALL TABLES : tables dun utilisateur + tables auxquelles il a acc` s e
Vues DBA xxx :
Tables de performance dynamiques Propri t de sys ee Concernent lactivit dune base e Vue V$DATAFILE : Information sur les chiers physiques dune base
Plus de colonnes que les autres Information sur les objets de tous les utilisateurs Vue DBA TABLES : toutes les tables dune base
Vue DICTIONARY : Liste des tables et des vues du dictionnaire DESCRIBE NomDeTable ou NomDeVue : liste des colonnes
21/263
22/263
nom, date de cr ation, localisation des espaces e consult a chaque lancement (startup) e` ` mis a jour automatiquement si modication des caract ristiques de e la base (ajout/suppression despaces, . . . )
Init le : Param` tres dinitialisation de la base e Transactions et journalisation :
Espace de table (tablespace) : ensemble dunit s logiques de stockage e des objets dune base Base : d coup e en une ou plusieurs tablespaces e e Tablespace : contenu rang dans un plusieurs chiers de donn es e e (Datale)
1. Images avant : segments/chiers dannulation (rollback segments/undo tablespaces) 2. Images apr` s : journaux de r ex cution (redo log les) e e e
23/263
Pages (ou blocs) = unit (par d faut) de lecture/ criture physique e e e extents : nombre d termin de blocs contigus e e segments : ensemble dextents non n cessairement contigus e
24/263
25/263
26/263
2. Processus Oracle : (a) un processus serveur (b) un ensemble de processus darri` re-plan (background processes) e
Note : Net8 = interface propri taire avec les protocoles standard de e communication sur un r seau e
1. Processus utilisateurs
Cr es pour ex cuter le code dun outil Oracle (comme Oracle e e Enterprise Manager) ou dun programme dapplication (comme un programme Pro*C/C++) G` rent la communication avec les processus serveur gr ce a e a ` linterface de programme (program interface) :
m canismes de formattage et de transmission de donn es e e m canismes de conversion de donn es (cas machines e e h t rog` nes) ee e
27/263
28/263
cr e pour g rer les demandes dactions des utilisateurs e e charg s de la communication avec le processus utilisateur et de e linteraction avec Oracle Si conguration de type serveur d di : un processus serveur ne g` re e e e que les demandes dun seul processus utilisateur Si conguration multit ches (multithreaded) : plusieurs processus a utilisateurs partagent un nombre restreint de processus serveurs.
29/263
30/263
Ex cution asynchrone des op rations dentr es/sorties et de contr le e e e o dautres processus Oracle Principaux processus :
ou
db writer processes : param` tre dinitialisation dune base e dans les chiers Redo Log
31/263
le compactage despaces physiques (extents) dans les espaces de donn es (tablespace) g r s par le dictionnaire e ee (Dictionary-Managed Tablespace)
32/263
7. RECO :
R soudre les transactions distribu es en suspens du fait de e e probl` mes r seau ou syst` me e e e
6. ARC :
Archivage du journal si base en mode archivelog et archivage automatique autoris (cf. chapitre S curit ) e e e Si la charge du serveur le n cessite, cr ation dynamique dARC e e ou log archive max processes : param` tre dynamique e
8. LCK0 : en charge du verrouillage inter-instances dans Oracle parallel server, celui-ci permettant lacc` s simultan a une base par plusieurs e e` instances.
33/263
34/263
Cr ation de bases de donn es (Bon courage!) e e Gestion des utilisateurs Concurrence et reprise S curit par duplication (multiplexage) e e Surveillance (audit) Traitement des requ tes e
1. Zone globale syst` me (SGA) e 2. Zones globales de programmes (Program Global Area, PGA) ou de processus (serveur et arri` re-plan) e 3. Zones m moire partageables pour code ex cutable : e e (a) code de linstance Oracle (b) code utilisateur 4. Zones de tri, etc.
35/263
36/263
Contenu du chapitre :
1. Organisation et stockage des donn es (p. 37) e 2. Organisation et stockage des index (p. 65) ` 3. Application a Oracle (p. 85)
37/263
38/263
Comprendre :
Sans index : parcours de toute la table (i.e. parcours de toutes les pages contenant des tuples de la table) Possiblit destimer a priori le nombre dE/S pour des e ou des
1. G rer les espaces ; e ` 2. Forme a donner aux requ tes pour maximiser lutilisation des e index ? 3. Utiliser les outils du serveur pour examiner les choix de son optimiseur.
39/263
40/263
1. Organisation en pages 2. Repr sentation des tuples e 3. Cas des objets longs : texte et image 4. Organisation en tas (heap) 5. La m moire cache e
Hypoth` se : donn es organis es et stock es en vrac (en tas ou heap) e e e e Espace (donn es, index, log) : blocs (pages) de m me taille e e Page : Unit de lecture/ criture physique e e Lecture/ criture via des tampons (cache) du syst` me e e Lecture/Ecriture logique : Lecture/ criture dans les pages des tampons e D faut de page : Absence dune page dans le cache e
Extent :
41/263
42/263
1. En-t te : e
Identication de lobjet contenu dans la page Chanage page suivante, page pr c dente de lobjet, etc. ; e e
43/263
44/263
1. Organisation en pages 2. Repr sentation des tuples e 3. Cas des objets longs : texte et image 4. Organisation en tas (heap) 5. La m moires cache e
45/263
46/263
En-t te : e
identication du tuple, ` nombre de colonnes a valeurs inconnues (NULL) nombre de colonnes de longueur variable, etc.)
Valeur effective du tuple :
Colonnes de type ordinaire Pointeurs vers les valeurs des objets longs
47/263
48/263
1. Organisation en pages 2. Repr sentation des tuples e 3. Cas des objets longs : texte et image 4. Organisation en tas (heap) 5. La m moires cache e
Comportement :
49/263
50/263
Recherche de tuples de R Adresse de la premi` re page contenant R : dans une des tables de la e m ta-base e Parcours des pages de R
p0 Adresse de la 1re page contenant R p1 t1 p2 t2 p3 Symbole de fin de chane
Dans la derni` re page de la relation, si espace disponible e Sinon, dans une page vide de lextent courant Si extent satur : e
51/263
52/263
2.
53/263
54/263
1. = taille(ancien) : Modication du tuple ; taille(ancien) : (a) Modication du tuple et d calage vers le haut ; e (b) Modication des pointeurs de tuples.
3.
taille(ancien) et place disponible dans la page : cf. cas 2, mais avec d calage vers le bas ; e
4. Sinon (Migration de tuple) (a) Suppression du tuple de la page ; (b) Insertion dans la derni` re page du tas. e
55/263
56/263
G rer au mieux les migrations de tuples e Contr le du remplissage (densit ) des pages o e
Petites relations utilisant peu de pages ; ` Pas dacc` s direct a un tuple ; e Pas dordre sur les ensembles r sultats ; e Relation ayant des tuples non uniques + ce qui pr c` de ; e e Relations avec peu de modications et dinsertions.
Maintenance p riodique e
57/263
58/263
1. Organisation en pages 2. Repr sentation des tuples e 3. Cas des objets longs : texte et image 4. Organisation en tas (heap) 5. La m moire cache e
m moire pagin e dans les syst` mes dexploitation e e e Recherche dune donn e e
1. Dans une page du cache ? 2. Si absente (d faut de page) : page la contenant e cache
3. Si toutes les pages du cache sont occup es: en vider une e ` Strat gies de choix de la page du cache a remplacer (` vider) : e a
59/263
60/263
LRU
Pousser eventuellement des pages vers la LRU Quand une page modi e passe le wash marker : ecriture e
Si nouveau besoin/acc` s a cette page : la remettre en t te de MRU. e ` e
Quand des pages modi es atteignent un point dans la chane (wash e marker) : Ecriture asynchrone de la page [ou checkpoint] par le serveur (i.e. quand une page arrive en n de chane, elle est propre et peut alors etre r -utilis e) e e Strat gies de remplacement de pages : e
61/263
62/263
p non modi e et p cache : p e p modi e et p cache : p en t te MRU e e p e cache : lecture disque (1 buffer) en t te de MRU.
63/263
64/263
Pages mises juste avant le wash marker Si p cache : mettre p avant le marqueur Sinon :
1. Organisation et stockage des donn es (p. 37) e 2. Organisation et stockage des index (p. 65) ` 3. Application a Oracle (p. 85)
65/263
66/263
o` u
valeur dun attribut ou une liste dattributs (cl de lindex) e et adresses des tuples contenant cette valeur
67/263
68/263
o` u
69/263
70/263
71/263
72/263
4/4) Index secondaire Construit sur un attribut dont les valeurs devraient etre ordonn es. e
Mais relation d j` ordonn e sur sa cl primaire ea e e ordre logique
ordre physique
73/263
74/263
Arbres equilibr s (Balanced trees, B-arbres) e ` Feuilles toujours a egale distance de la racine 1. Arbres 2. B-arbres
75/263
76/263
nuds ls
Recherche
Recherche par dichotomie longueur du chemin de la racine jusquaux feuilles e etant le nombre de valeurs de la cl
valeurs
feuille suivante
et pointeurs
: cl s , e
Premier Pointeur : cl s e
Dernier pointeur
77/263
et mise a jour `
78/263
Exemple :
Efcacit en recherche e
` Activit suppl mentaire en mise a jour : e e Maintenir la propri t B ee Garantir la structure des nuds
Arbres
79/263
Arbres
apr` s insertion e
80/263
Arbres
apr` s suppression e
81/263
-arbres
82/263
Diff rence : toutes les cl s de lindex napparaissent pas aux feuilles e e Nombre de nuds du B-arbre
ceux du
Ajout de pointeurs dans les nuds non-feuilles pour les valeurs de la cl de lindex qui napparaissent pas aux feuilles e
-arbres
83/263
84/263
, page 80
Contenu du chapitre :
1. Organisation et stockage des donn es (p. 37) e 2. Organisation et stockage des index (p. 65) ` 3. Application a Oracle (p. 85)
85/263
86/263
1. (Quelques) Objets logiques (schema objects) (a) Types de tables (b) Types dindex 2. Organisation et stockage
87/263
88/263
Cl dun index : au plus 32 colonnes ; e Recommandation : cr er et instancier les tables avant les index ; e Option on line :
create index . . . on line ; alter index . . . rebuild on line ; Cr ation ou reconstruction sans interdire lacc` s a la table ; e e ` Commandes de manipulation de donn es autoris es ; e e Commandes de d nition de donn es interdites e e Mais eviter de manipuler une grande partie de la table pendant la cr ation ou la reconstruction de lindex. e
3. Bas s sur des fonctions (create index . . . on Fonction) e ` 4. Sp ciques a un domaine dapplication (cf. Oracle Data Cartridge e Interface) 5. Partitionn s (create index . . . partition) e
89/263
90/263
Espace de tables (tablespace) : ensemble dunit s logiques de stockage e des objets dune base Base : d coup e en une ou plusieurs tablespaces e e Tablespace : contenu rang dans un plusieurs chiers de donn es e e (Datale)
dun chier de param` tres de conguration (control le) e dun chier de param` tres dinitialisation (init.ora) e de chiers de journalisation des transactions (redo log les, rollback segments/undo tablespaces)
Espaces physiques persistants (disque) structur s en : e
91/263
extents : nombre d termin de blocs contigus e e segments : ensemble dextents non n cessairement contigus e
92/263
La suite :
Tablespace SYSTEM
1. Quelques notions sur les tablespaces pour comprendre la gestion des blocs, des extents et des segments Compl ments dans le chapitre Bases de donn es et leurs objets e e 2. Gestion des blocs et des extents 3. Gestion des segments 4. Gestion des espaces physiques non persistants (cache)
automatiquement cr ee lors de la cr ation de chaque base e e contient, dans son premier datale :
dictionnaire de la base unit s de programmes stock s (proc dures, fonctions, paquetages e e e et triggers)
contr ler le placement des objets o affecter des ressources aux utilisateurs
93/263
94/263
Exemples de tablespaces d di s a : e e `
Espace des tablespaces d coup en blocs e e Blocs group s en extents e Extents (libres/occup s) g r s e ee
Images avant modication (undo tablespaces) Stockage exclusif des donn es ou des index e Tables des outils du syst` me e Espaces temporaires (pour les tris, par exemple)
Dur e de vie dune tablespace : cr ation (create tablespace) e e suppression
95/263
non modiable
96/263
Modes de gestion egalement applicables aux tablespaces temporaires create tablespace Nom-de-la-tablespace temporary . . . : tablespace temporaire avec gestion par dictionnaire create temporary tablespace . . . temple . . . : avec gestion locale.
2. locally managed :
Sur les versions
version 8.0
` Matrice mise a jour, sans journalisation, lors de chaque allocation ou lib ration dextent e
Tablespace : Exemples
97/263
98/263
Tablespace Espace1 : deux chiers physiques (datales) Tablespaces Espace2 et EspaceTemp : un seul espace physique
1. Temporaire/permanente : changement par : alter tablespace . . . temporary/permanent 2. Accessible (online)/Inacessible (ofine) : alter tablespace Nom online/ofine
Pas de mise hors ligne de SYSTEM Pas de mise hors ligne de tablespaces contenant des segments dannulation (rollback segments) en cours dutilisation
99/263
100/263
alter tablespace . . . read only ` Changement d tat effectif a lissue des transactions actives e Seules les op rations de consultation et de suppression dobjets e (index, tables) restent autoris es. e
Dans dba tablespaces : informations sur toutes les tablespaces Dans user tablespaces : sur celles accessibles par un utilisateur.
alter tablespace Espace2 ofine temporary; create tablespace Espace3 datale D:Fichier3.dat size 30M ofine; alter tablespace Espace3 read only; alter tablespace Espace3 online;
Mise hors ligne temporaire de lespace Espace2
Cr ation Espace3 hors ligne puis mise en lecture seule puis remise en e ligne
101/263
102/263
2. Blocs Oracle
1. Notions sur les tablespaces 2. Gestion des blocs 3. Gestion des extents 4. Gestion des segments 5. Gestion des espaces physiques non persistants (cache)
1. Descripteur 2. Contenu
103/263
104/263
` 84 a 120 octets
"Overhead"
1. En-t te : adresse, type du segment dappartenance, etc. e 2. R pertoire de tables : informations sur les objets contenus dans le bloc e 3. Table des d placements des tuples : e
2 octets par entr e e
Espace occup
Entr es non lib r es lors de la suppression de tuples e ee R -utilisables lors dinsertions dans le bloc e
105/263
106/263
Espace occup : crot de bas en haut e Espace libre : peut parfois contenir des informations sur des transactions
Param` tres de stockage : Contr ler le remplissage de blocs de tables, e o groupements de tables (cluster) et index ayant leurs propres segments de stockage :
information stock e dans des transaction entries e Une entr e par op ration insert, update, delete, select for update e e environ 230 octets/entr e e
Param` tres de stockage INITRANS et MAXTRANS : e
1. PCTFREE : pourcentage minimum despace libre dans un bloc 2. PCTUSED : pourcentage maximum pouvant etre occup e
Sp ci s lors de la cr ation ou de la modication dune table, dun e e e cluster ou dun index (create/alter table, cluster ou index) Si taux de remplissage dun bloc
Nombre initial et nombre maximum de transactions concurrentes sur le bloc ; Index, tables et des groupements de tables (cluster).
PCTFREE :
Insertions interdites dans le bloc ; Reprise des insertions si taux de remplissage ` a PCTUSED.
107/263
108/263
1. Insertions autoris es dans le bloc jusqu` ce quil ny reste que 30% e a despace libre ; ` 2. Seules les mises a jour sont alors autoris es dans le bloc ; e 3. Insertions de nouveau permises lorsque le taux doccupation du bloc descend au-dessous de 50%.
109/263
110/263
Si taille dun tuple capacit dun bloc (par exemple, types LONG et e LONG RAW) : Rangement dans une chane de blocs.
Pas de compactage (i.e. elimination effet gruy` re, coalesce) e syst matique du bloc apr` s lib ration de place ; e e e
Compactage lorsque, pour une insertion ou une modication :
2. Gestion des blocs 3. Gestion des extents 4. Gestion des segments 5. Gestion des caches
111/263
112/263
3. Extents Oracle
Extent =
Groupe de blocs contigus, Unit dallocation despace pour un objet dans un segment, e
Segment :
` Allocation dun extent (initial extent) a la cr ation dun objet ; e Quand satur : allocation dun nouveau (increment). e
Param` tres de stockage : e
Un ou plusieurs extents ; Bloc den-t te dun segment : r pertoire des extents. e e ` Formattage des extents : au fur et a mesure des besoins
Forcer le formattage d` s lallocation : clause ALLOCATE EXTENT e dans alter table (administrateur).
Taille et nombre dextents pour un objet ; Par d faut : param` tres de la tablespace du segment. e e 1. Cas des tablespaces g r es localement ee
113/263
114/263
Espace des tablespaces est d coup en blocs e e Blocs group s en extents e Extents g r s ee
version 8.0
` Matrice mise a jour, sans journalisation, lors de chaque allocation ou lib ration dextent e
non modiable
115/263
116/263
Extents allou s dans le premier chier (datale) de la tablespace ayant e le nombre requis de blocs libres contigus Localisation des blocs libres : Matrices doccupation des datales. Taille dun extent :
Arguments UNIFORM ou AUTOALLOCATE de create tablespace UNIFORM : Taille xe (celle sp ci e ou 1MO par d faut) e e e AUTOALLOCATE (option par d faut) e
Taille extent : choisie par syst` me e Taille minimum : 64KO Valeur par d faut pour les tablespaces permanentes : 64KO e Possibilit de sp cier la taille de lextent initial. e e
117/263
118/263
create tablespace T1 datale F:DataFichier2T1.dat size 5 M extent management local uniform size 128K; create tablespace T2 datale D:DataFichier2T2.dat size 2M extent management local uniform;
T1 : tablespace : 5M; extents : 128K T2 : tablespace : 2M; extents : 64K, minimum
119/263
120/263
Table avec au plus 30 extents, Extent initial : 100K Deuxi` me extent : 50K e Pourcentage de croissance des suivants : 5 Troisi` me extent : e
sp cication de la taille de lextent initial, de lincr ment, des e e suivants, etc. ` sapplique a la plupart des objets logiques ou physiques dune base (clusters, tables, rollback segments, partitions, etc.).
(Quelques) Arguments de la clause de stockage :
Taille th orique : (50 + (50*5/100)) =52.5K e Si blocs de 4K : allocation de 13 blocs (52K = plus proche multiple de la taille des blocs).
121/263
122/263
1. INITIAL xK ou yM :
Taille du premier extent (xKO ou yMO) ; Allou a un objet d` s la cr ation de sa d nition (ou sch ma) ; e` e e e e Valeur par d faut : 5*taille dun bloc ; e
blocs,
si taille t (xK ou yM) multiple de la taille des blocs et si t requiert moins de cinq blocs.
(b) Allocation du plus petit multiple de cinq blocs satisfaisant la demande si nombre de blocs requis par t 5.
123/263
124/263
2. NEXT xK ou yM :
= Taille du deuxi` me extent ; e Minimum = Taille dun bloc ; Valeur par d faut = 5*taille dun bloc. e
` 4. MINEXTENTS : nombre minimum dextents a allouer sur un segment lors de sa cr ation ; e ` 5. MAXEXTENTS : nombre maximum dextents allouables a un segment ; 6. BUFFER POOL : ` Affecter un cache par d faut a un objet autre quune tablespace ou e quun segment dannulation
cf. Gestion des caches
3. PCTINCREASE :
= Pourcentage daugmentation de la taille des extents allou s apr` s e e le deuxi` me extent. e Taille dun extent ,
125/263
126/263
Rappel : 1er extent allou d` s la cr ation de la d nition dun objet : e e e e Allocation des autres extents :
127/263
128/263
G n ralement pas de lib ration physique avant suppression de lobjet e e e contenu Lib ration logique : marquage e
2. Gestion des blocs 3. Gestion des extents 4. Gestion des segments 5. Gestion des caches
option deallocate unused dans alter table, alter index ou alter cluster.
129/263
4. Segments Oracle
130/263
Blocs des extents : contigus, Extents dun segment : pas n cessairement contigus e Allocation dun segment :
create index, select distinct avec/sans order by et/ou group by avec , , de jointures sans index.
Utilisables pour des index construits pour des tables temporaires
` a un objet de la base, dans une tablespace eventuellement dans des chiers physiques diff rents. e
Quelques types de segments :
131/263
132/263
en m moire vive (cf. gestion des caches) e ou en nutilisant que les index
2 segments parfois pour des requ tes avec order by, distinct et group by e Localisation par d faut : tablespace SYSTEM e Segments dans tablespaces temporaires : create temporary tablespace Association utilisateur-espace temporaire :
2. Gestion des blocs 3. Gestion des extents 4. Gestion des segments 5. Gestion des caches
create ou alter user . . . temporary tablespace NomEspace cf. chapitre gestion des utilisateurs
133/263
134/263
Plan :
1. Zone globale syst` me (SGA, cf. chapitre installation) e 2. Zones globales de programmes (Program Global Area, PGA) ou de processus (serveur et arri` re-plan) e 3. Zones m moire partageables pour code ex cutable : e e (a) code de linstance Oracle (b) code utilisateur 4. Zones de tri, etc.
1. SGA (a) Taille (b) Cache de donn es e (c) Cache du log 2. PGA 3. Zones de tri
135/263
136/263
D termin e lors du lancement dune instance Oracle e e Afch e lors du lancement de Oracle Enterprise Manager e
Peut etre obtenue par SHOW SGA (sous SQL*Plus) : SQL> show sga; Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers 73701404 75804 56770560 16777216 77824 bytes bytes bytes bytes bytes
M moire vive de la machine du serveur doit etre sufsante pour e accueillir la totalit de la SGA e Sinon risque de des performances (combinaison gestion m moire Oracle-gestion m moire syst` me h te) e e e o
Quelques param` tres dinitialisation de la base inuant sur la taille : e
1. db block size : taille dun bloc (en octets) ; 2. db block buffers : nombre de tampons allou s a la SGA ; e ` 3. log buffer : nombre doctets du tampon redo log ; 4. shared pool size : nombre doctets des zones partag es SQL et e PL/SQL.
137/263
138/263
Plan :
Taille fonction de :
1. SGA (a) Taille (b) Cache de donn es e (c) Cache du log 2. PGA 3. Zones de tri
1. write list : liste des blocs modi s en attente d criture physique ; e e 2. liste LRU (Least Recently Used) : blocs libres, blocs modi s non encore transf r s vers la write list e ee blocs en cours dutilisation (pinned blocks).
139/263
140/263
Par d faut, parcours dune table en fetch and discard e Contr le de la strat gie : o e
1. clause CACHE NOCACHE de create ou alter table ou index 2. Utilisation de pools de blocs : (a) Congurer les pools (b) Associer/affecter objets aux pools
141/263
142/263
1. KEEP : Taille sp ci e par buffer pool keep (param` tre de e e e conguration) 2. REUSE : Taille sp ci e par buffer pool reuse e e 3. DEFAULT :
Emplacement, par d faut, des objets e Taille = db block buffers - (buffer pool keep + buffer pool reuse)
143/263
144/263
create table R(x int, . . . ) storage (buffer pool recycle); create index Idx2R on R(x) storage (buffer pool keep);
Gestion des blocs de R : fetch and discard ; Gestion des blocs de Idx2R : LRU ; Si dans le chier de conguration de la base :
Plan :
1. SGA (a) Taille (b) Cache de donn es e (c) Cache du log 2. PGA 3. Zones de tri
db block buffers = 2048 buffer pool keep = (buffers: 300, . . . ) buffer pool reuse = 100,
Pool KEEP : 300 blocs ; Pool REUSE : 100 ; Pool par d faut : (2048 - (300 + 100)). e
145/263
146/263
Par d faut : 4*taille maximum dune page du syst` me h te ; e e o ou log buffer octets (param` tre de conguration de la base) e LGWR : ecritures physiques dans le chier ou le groupe de chiers redo log actifs (cf. chapitre s curit et reprise) ; e e
Gestion circulaire des blocs : Exemple
147/263
148/263
Plan :
1. SGA (a) Taille (b) Cache de donn es e (c) Cache du log 2. PGA 3. Zones de tri
149/263
150/263
Aussi appel es zones globales de processus (process global area), e Non partag es, e Une par processus serveur ou darri` re-plan, e
PGA Serveur ddi Pile SGA Zones SQL partages Informations de session
PGA Serveur multi-thread Pile SGA Informations de session Zones SQL partages
` Allou es par Oracle lorsquun utilisateur se connecte a une base et e quune session est cr ee, e
Taille xe, d pendante du syst` me h te, e e o Contenu varie selon que la session est sous un serveur d di ou sous un e e serveur multi-threaded.
151/263
152/263
Plan :
1. SGA (a) Taille (b) Cache de donn es e (c) Cache du log 2. PGA 3. Zone de tri
de segments temporaires (disque) dune partie de la PGA) (m moire) du processus serveur dOracle e qui r alise le tri pour le compte dun processus utilisateur e + une partie de la zone de tri existe dans la zone runtime de la zone SQL priv e du processus utilisateur. e
153/263
154/263
Durant un tri,
Taille de la zone peut crotre jusqu` sort area size, a D sallocation de parties si le syst` me a besoin despace pour e e dautres t ches, a Contenu de lespace lib r ecrit dans les segments temporaires, ee ` D sallocations ne doivent pas r duire la zone a une zone de taille e e Tz, Tz sort area retained size.
Par d faut, sort area retained size = sort area size. e
G n ralement transparente pour un utilisateur naf (ind pendance e e e donn es-programmes) ; e Compr hension n cessaire pour e e
G r r les espaces des bases ; ee Comprendre les choix de loptimiseur ; Congurer le serveur ; ... Concevoir et impl menter des SGBD. e
155/263
156/263
Contenu du chapitre :
1. Traitement des requ tes dans les SGBDR (p. 157) e ` 2. Application a Oracle (p. 206)
157/263
158/263
Donn es de la base vers la m moire centrale e e Traitement ` Retour dans le cas de mises a jour
Peut n cessiter la cr ation de tables interm diaires e e e Volume des transferts et des tables de travail fonction des tailles des relations mises en jeu Objectif dun optimiseur : R duction des volumes e
Temps dex cution dune requ te anormal % taille des relations, e e existence dindex Une requ te sex cute plus lentement que des requ tes similaires e e e temps dex cution dune requ te e e Temps dex cution dune requ te en tant que proc dure e e e ex cution en tant que requ te e e
celui de son
159/263
160/263
1. Syntaxique :
Fondement : Heuristiques + Propri t s de lalg` bre ee e Transformation darbres (alg` bre) ou de graphes (calcul relationnel) e
161/263
162/263
1. Transformation darbres alg riques e 2. Transformation de graphes de requ tes e ` 3. Optimisation a base de co ts u 4. Optimisation S mantique e 5. Processus G n ral dOptimisation e e
1. Descente des s lections : les relations en hauteur e 2. Descente des projections : les relations en largeur
Phrase SQL
Feuilles : Relations Racine : R sultat de la requ te e e Nuds internes : Op rations de lalg` bre e e Arcs entrants : Op randes e
163/263
164/263
Personne(id#, nom, prenom, date naisssance, adresse, equ#) Equipe(equ#, nom equ, resp equ#) Projet(proj#, nom proj, lieu proj, equ#) Travaille sur(id#, proj#, taux)
En SQL :
Personne.equ# : Equipe de rattachement Projet.equ# : Equipe en charge du projet Travaille sur.taux : Part de temps sur un projet
nom Projet, Travaille sur, Personne Projet.nom proj = BDD Personne.id# = Travaille sur.id# Personne.date naissance dec-31-1962 Travaille sur.proj# = Projet.proj#
WHERE
SELECT
165/263
166/263
167/263
168/263
Introduction de jointures
169/263
170/263
Projet : 20 tuples de 100 caract` res e Travaille sur : 100 tuples de 50 caract` res e Personne : 500 tuples de 100 caract` res e Deux produits cart siens : e
171/263
172/263
1` re jointure : e
` ` Une relation a une colonne et probalement a un n-uplet Relation Travaille sur : deux colonnes
2` me jointure : e
(R1) D composition des expressions de s lection. e e (R2) Commutativit de la s lection. e e (R3) Restriction de la liste de projections.
` Une relation a une colonne (sous-arbre gauche) ` Une relation a 2 colonnes (sous-arbre droit) r duite aux seuls e n-uplets satisfaisant la s lection e
173/263
174/263
(R5) Commutativit de la jointure (et du produit cart sien). e e . (R6) Commutation s lection-jointure (ou produit cart sien). e e
- (R61) Si les attributs de la condition C de s lection nappartiennent e qu` une des relations de la jointure, par exemple R, alors : a . - (R62) Sinon, si la condition C peut se r - crire en ee
: attributs de R et
ne porte que sur des attributs de R ne porte que sur ceux de S, alors :
u o` :
- (R72) Si la condition de jointure comporte des sous-listes ` dattributs de R et dattributs de S nappartenant pas a L : 1. Les ajouter aux projections internes 2. Appliquer une projection externe sur L .
175/263
176/263
).
(R11) Commutation de la projection et des op rations ensemblistes. e . Autres : Equivalences logiques Autres propri t s des op rateurs alg briques ee e e
(R9) Associativit : jointure, produit cart sien, union et intersection. e e o` R, S, T sont des relations u e e et des op rateurs parmi ceux cit s (R10) Commutation de la s lection et des op rations ensemblistes. e e u (Select((R op S), C)) (Select(R, C) op Select (S, C)) o` op est lop rateur dunion, dintersection ou de diff rence e e
177/263
178/263
1. Transformer toute expression de s lection conjonctive en une cascade e de s lections (R` gle R1) e e 2. Descendre les s lections le plus bas possible e ((R2), (R4), (R6), (R10)). 3. Ordonner les feuilles de larbre de sorte que les s lections les plus e restrictives soient evalu es en premier ((R8), (R9)) e
Plus restrictives = produisant les plus petites relations cf. distribution des valeurs, index (dictionnaire) cf. notion de s lectivit , plus loin e e
5. Fragmenter et faire descendre le plus bas possible les listes de projection, en cr ant de nouvelles projection, si besoin est (R` gles e e (R3), (R4), (R7), (R11)) , 6. Identier les sous-arbres qui repr sentent des groupes dop rations e e pouvant etre ex cut s par une seule routine du SGBD e e
179/263
180/263
nom
Join
t.#proj = p.#proj
Proj
t.#proj, t.#id
Travaille_sur t A2
Projet p
A1
181/263
182/263
Technique dite de d composition de requ tes e e Introduite dans Ingres/QUEL (Variables n-uplets) Graphe de requ tes : e
Technique : Requ te a plusieurs variables d compos e en sous-requ tes e ` e e e ` a une variable, par d tachement de sous-graphes et substitution de e tuples.
1. D tachement : e
Identier des sous-requ te ayant une seule variable en commun e avec le reste de la requ te e Les d tacher du graphe e
Sur les arcs : Conditions de jointure des nuds reli s e Nuds : Variables de tuples ou constantes de la requ te e Arcs conditions de s lection : relient des nuds de constantes e aux nuds des variables impliqu es dans les conditions. e
2. Substitution de tuples :
Evaluation de sous-requ te e
Heuristique (s lection, projection, jointure seulement) : ex cuter les e e s lections avant les jointures (ou le produit cart sien) en identiant des e e sous-requ tes a une seule variable et une condition de s lection e ` e
` Substituer, un tuple a la fois, de valeurs aux variables de la requ te. e ` m requ tes, plus simples, a (n-1) variables e
Requ te a n variables e `
183/263
184/263
Personnes n es apr` s 1962 et travaillant sur des projets e e se d roulant a Nancy dans l quipe num ro 3 e e e ` RANGE OF p IS Projet, t IS Travaille sur, e IS Personne RETRIEVE e.nom WHERE p.lieu proj = Nancy AND p.equ# = 3 AND p.proj# = t.proj# AND t.id# = e.id# AND e.date naissance dec-31-62
R2 e
e.#id = t.#id
t.#proj = p.#proj
R1
p.lieu_proj = Nancy
p.#equ = 3
185/263
186/263
1. Transformation darbres alg riques e 2. Transformation de graphes de requ tes e ` 3. Optimisation a base de co ts u 4. Optimisation S mantique e 5. Processus G n ral dOptimisation e e
Acc` s disque, e Co t du traitement en m moire centrale, u e Taille des n-uplets, des relations, Index : Existence, nombre de niveaux, Co t de communication (requ te, r sultats) entre sites (architectures u e e client/serveur, par exemple), etc.
187/263
188/263
Informations du dictionnaire
S lectivit de la jointure : e e
Nombre exact ou estim de tuples et de blocs physiques par e relation ; Nombre de niveaux dindex ; Nombre de valeurs distinctes par attribut, dans les cas o` un index u ou un cluster existe : permet destimer le nombre moyen denregistrements qui satisfont une s lection (s lectivit ou cardinal e e e de s lection dun attribut A). e
A est cl : s = 1 e A nest pas cl : s = Card(R)/Nombre de valeurs de A. e
1. A est cl de R : e
2. De m me, si B est cl de S : e e
189/263
190/263
191/263
192/263
Contrainte dint grit Formule logique e e Expression de s lection e Pas dacc` s a la base si e ` Exemple :
G n ration de plans avec/sans ex cution de requ te e e e e Exemple : Visualisation dun plan sans ex cution e
Ex cution avec WITH RECOMPILE : M` J du plan stock e a e Cr ation avec WITH RECOMPILE : G n ration syst matique e e e e
Mise a jour des informations sur la distribution des valeurs des cl s des e ` index :
193/263
194/263
Commande EXPLAIN PLAN : obtenir le plan dex cution e Plan rang dans PLAN TABLE ou dans une relation cr ee e e ` pr alablement a lex cution de EXPLAIN PLAN (clause INTO de e e EXPLAIN PLAN)
1. Transformation darbres alg riques e 2. Transformation de graphes de requ tes e ` 3. Optimisation a base de co ts u 4. Optimisation S mantique e 5. Processus G n ral dOptimisation e e
EXPLAIN PLAN [SET STATEMENT ID = identication plan] e [INTO [nom utilisateur.]nom de relation] FOR requ te SQL
195/263
196/263
2. Analyse s mantique e
Optimisation Plan dexcution Gnration de code Dico. Stats Donnes Index
197/263
198/263
Forme disjonctive :
Forme normale conjonctive : conjonction de disjonctions Forme normale disjonctive : disjonction de conjonctions Formules sans quanticateurs :
select libelle from produit p, stock s where p.prod# = s.prod# and s.adr = Nancy and (s.qte = 1000 or s.qte=200) Forme disjonctive : (p.prod# = s.prod# (p.prod# = s.prod# p.prod# = s.prod# s.adr = Nancy s.adr = Nancy s.qte = 1000) s.qte = 2000) s.qte=2000)
199/263
200/263
2/4) Analyse
Exemple :
Dictionnaire : Relations, attributs connus Typage des expressions Correction s mantique : pas de sous-requ te isol e e e e
select p.prod#, p.pu, s.qte from produit p, stock s, depot d where p. prod# = s.prod# and s.dep# = d.dep# 0 and d.adr = Nancy and libelle = . . . and s.qte
ni
: graphe connexe
Stock
Stock
p.prod# = s.prod#
Arcs entre nuds non r sultats : Jointure e Arcs dextr mit nud r sultat : Projection e e e e e Nud non r sultat peut etre labell par une expression de s lection e ou une auto-jointure
Produit
prod#, pu
Rsultat
libelle = "..."
201/263
202/263
200.0
; ; ;
200.0
203/263
204/263
Exemple :
select libelle from produit where NOT libelle = K7Cr and (libelle = K7Cr or pu = 20.0) and NOT pu = 20.0 and prod# = 4 se simplie en : select libelle from produit where prod# = 4
205/263
206/263
Contenu du chapitre :
1. Traitement des requ tes dans les SGBDR (p. 157) e ` 2. Application a Oracle (p. 206)
207/263
208/263
1. A base de r` gles (Rule Based Optimization, RBO) : optimisation e darbres alg briques e 2. A base de co ts : Cost Based Optimization (CBO). u
Choix de la strat gie : automatique ou impos pour une requ te, une e e e session ou une instance Oracle, Inuencer la g n ration de plans : Directives doptimisation dans les e e requ tes, e R -utiliser des plans : cf. outlines (non trait ici). e e
1. Architecture du compilateur de requ tes et structure de stockage des e plans dex cution (p. 209) e 2. Processus et principales etapes de traitement des requ tes (p. 221) e ` 3. Optimisation a base de co ts (p. 239) u ` 4. Optimisation a base de r` gles (p. 252) e 5. Directives doptimisation (p. 255)
209/263
210/263
1. Analyseur : d composition de la requ tes en un ensemble de e e composants embot s ou reli s (blocs de la requ te) e e e
Vue, requ te imbriqu e e e (ou pas)
2. G n rateur de sources de tuples : Engendrer un plan dex cution etant e e e donn le plan optimal ( arbre alg brique) rendu par loptimiseur : e e ` Noeuds op rations internes a Oracle ( e op rateurs alg briques) : e e Provenance = mode dacc` s aux tuples et type dalgorithme de e jointure choisis Exemples : tri (sort), fusion (merge)
Source de tuples feuille dun arbre ou relation r sultant de e l valuation dun sous-arbre. e
211/263
212/263
par d faut, dans plan table e ou dans une table de m me sch ma (explain plan . . . into . . . ) e e
plan table cr ee par le script utlxplan.sql (g n ralement sous e e e $OraHomerdbmsadmin). Examen du plan :
1. select . . . from . . . where . . . 2. utilitaire utlxpls : traitements en s rie e 3. utilitaire utlxplp : ex cutions parall` les e e
213/263
214/263
id : num ro d tape du plan ; e e parent id : num ro de l tape qui utilise les r sultats de l tape id ; e e e e
position : rang dune etape parmi les etapes lles dune m me etape e m` re ; e
cardinality : nombre estim de tuples acc d s par lop ration ; e e e e operation : nom de lop ration interne r alis e dans l tape ; e e e e object name : objet concern par lop ration ; e e cost : co t estim de lop ration (si optimisation bas e sur les co ts) ; u e e e u options : variante dop ration utilis e pour ex cuter operation. e e e
215/263
216/263
Id P_id Operation Objet Options -- ---- ----------------- -------- --------0 SELECT STATEMENT 1 0 MERGE JOIN 2 1 SORT JOIN 3 2 TABLE ACCESS STOCK FULL 4 1 SORT JOIN 5 4 TABLE ACCESS PRODUIT FULL 6 ligne(s) slectionne(s). e e
plan table : repr sentation tabulaire des plans dex cution et des choix e e de loptimiseur :
sort
217/263
Commentaires Type dacc` s a une table. e ` Tri en eliminant les doublons. Tri avant jointure par fusion. Tri requis par la requ te. e Jointure par boucles imbriqu es. e
218/263
Pour une instance : sql trace = true dans le chier dinitialisation Pour une session : alter session set sql trace = true
Effets : G n ration de statistiques sur e e
view
outer semi
Idem pour une jointure externe. Idem pour une semi-jointure. Interrogation dune vue.
Dur es danalyse et dex cution, e e Temps total et temps unit centrale, e Nombre de lectures et ecritures physiques, Nombre de tuples trait s, etc. e
219/263
220/263
Localisation par d faut : user dump dest (init.ora) e Indication dynamique de leur emplacement : alter system set e user dump dest = chemin vers un r pertoire) max dump le size : taille maximum des chiers (param` tre e dynamique) 3. tkprof : formattage des chiers produits par SQL Trace
1. Architecture du compilateur de requ tes et structure de stockage des e plans dex cution (p. 209) e 2. Processus et principales etapes de traitement des requ tes (p. 221) e ` 3. Optimisation a base de co ts (p. 239) u ` 4. Optimisation a base de r` gles (p. 252) e 5. Directives doptimisation (p. 255).
Production dun chier par chier de trace, Fichier formatt en fonction de param` tres et options dex cution e e e
221/263
222/263
1. Simplication et Evaluation dexpressions (cf. Processus g n ral) e e 2. R ecriture de requ tes complexes (p. 223) e e 3. R ecriture de requ tes avec vues (p. 228) e e 4. Choix de la strat gie doptimisation (p. 229) e 5. Traitement des jointures (p. 236)
223/263
224/263
Transformations d cid es en fonction de la complexit de la requ te, de e e e e la pr sence de vue ou dindex, etc. e Types de transformation :
select . . . where A = Constante1 or B = Constante2 r ecrite en : e (select . . . where A = Constante1) union (select . . . where B = Constante2)
1. Requ te simple e
Requ te compos e, e e
2. D simbriquer des sous-requ tes, e e 3. Incorporer des d nitions de vues dans une requ te e e 4. Introduire des pr dicats de la requ te dans une vue. e e Si index sur A et B.
225/263
226/263
Traiter la requ te sous sa forme initiale e ou d simbriquer la sous-requ te en introduisant des jointures dans la e e requ te initiale. e Exemple : Si contrainte de cl primaire ou dunicit sur R2.x e e
, ) :
1. Un plan dex cution pour chaque membre de lop rateur e e 2. Composition du r sultat avec lop rateur ensembliste e e
Exemples : (triangle sous-arbre)
sort unique union_all R1 R2 R1 R2 R1 R2 Intersection intersect sort unique sort unique
select . . . from R1 where x in (select x from R2 where condition) ; r ecrite en : e select . . . from R1, R2 where condition and R1.x = R2.x.
union_all
227/263
228/263
1. Simplication et Evaluation dexpressions (cf. Processus g n ral) e e 2. R ecriture de requ tes complexes (p. 223) e e
` (a) Int grer la d nition de la vue a la requ te e e e et select x1 from V where Condition2 create view V as (select x1, . . . from R where Condition1) select x1 from R where Condition1 and Condition2
3. R ecriture de requ tes avec vues (p. 228) e e 4. Choix de la strat gie doptimisation (p. 229) e 5. Traitement des jointures (p. 236)
(b) Etendre la d nition de la vue par des pr dicats de la requ te. e e e ` Quand echec de lint gration de la vue a la requ te. e e
229/263
230/263
Strat gie (rappel) : Base de co ts/de r` gles e u e But de loptimisation : globale ou temps de r ponse e Optimisation globale : minimiser la quantit totale de ressources e n cessaires au traitement de tous les tuples concern s par une e e instruction
231/263
232/263
1. choose et pr sence de statistiques sur au moins une table e ` Strat gie : a base de co ts e u
But : optimisation globale
233/263
234/263
Rappels : Statistiques
Collecte par :
analyze . . . compute estimate statistics create alter index . . . compute statistics Paquetage dbms stats ` Mises a jour p riodiques explicites e
Si absence totale de statistiques : utilisation possible de donn es e quantitatives sur lencombrement des espaces (nombre de blocs occup s, nombre de niveaux dindex, etc.) e
235/263
236/263
1. Simplication et Evaluation dexpressions (cf.processus g n ral) e e 2. R ecriture de requ tes complexes (p. 223) e e 3. R ecriture de requ tes avec vues (p. 228) e e 4. Choix strat gie doptimisation ? (p. 229) e 5. Traitement des jointures (p. 236)
(a) Type dalgorithme de jointure (b) Ordre des jointures (c) Chemins dacc` s e
237/263
238/263
1. Boucles imbriqu es (nested loops), e 2. Tri-fusion (sort-merge), 3. Hachage (hash join), 4. Groupement (cluster join).
Ordre de jointures ( la strat gie doptimisation) : e
1. Architecture du compilateur de requ tes et structure de stockage des e plans dex cution (p. 209) e 2. Processus et principales etapes de traitement des requ tes e ` 3. Optimisation a base de co ts (p. 239) u ` 4. Optimisation a base de r` gles (p. 252) e 5. Directives doptimisation (p. 255)
1. En t te de lordre : Table dont la jointure rend un seul tuple e 2. Poursuite de la recherche de lordre (variable selon les strat gies) e
239/263
240/263
1. Disponibilit de statistiques e 2. Param` tres dinitialisation positionn s : e e (a) optimiser mode = choose, rst rows ou all rows (b) optimiser features enable = 8.1.6 (c) compatible = 8.1.6
Note : Consulter les param` tres en vigueur dans v$parameter e Exemple :
des tables partitionn es et/ou organis es en index, e e des index bas s sur des fonctions. e
Processus doptimisation :
1. Engendrer un ensemble de plans : se fonder sur les chemins dacc` s existants e les eventuelles directives doptimisation 2. Estimer le co t de chaque plan : utiliser les statistiques sur u la distribution des donn es e les caract ristiques de stockage des objets (tables, index, e partitions) impliqu s e 3. Choisir le plan le moins co teux. u
241/263
242/263
La suite :
1. Chemins dacc` s (p. 243) e 2. Transformation de requ tes (p. 245) e 3. Estimation de co ts (p. 248) u 4. G n ration de plans (p. 250) e e
243/263
244/263
La suite :
1. Chemins dacc` s (p. 243) e 2. Transformation de requ tes (p. 245) e 3. Estimation de co ts (p. 248) u 4. G n ration de plans (p. 250) e e
Full table scans : parcours de toute la table ; Sample table scans : parcours dun echantillon de tuples ; Table access by RowId : acc` s a laide dun identiant de tuple ; e ` Index scans : mode de parcours dindex avec des variantes dont : unique scan : lorsquun identiant de tuple est rendu ; range scan : etant donn un intervalle de valeurs de la cl ; e e full scan : parcours de la totalit dun index ; e fast full scan : lindex suft pour satisfaire la requ te. e
245/263
246/263
Objectif du transformateur de requ tes : est-il avantageux dop rer des e e r ecritures de requ tes ? e e Evaluation de lopportunit e
` 1. dint grer les d nitions de vues a la requ te, e e e 2. de d simbriquer des requ tes, e e 3. dutiliser des vues mat rialis es. e e
Note : Vue mat rialis e = Vue instanci e ( Table) e e e
` 3. Vues mat rialis es : si une partie de la requ te correspond a la e e e d nition dune vue mat rialis e, la remplacer par le nom de la vue. e e e
247/263
248/263
La suite :
Facteurs :
1. Chemins dacc` s (p. 243) e 2. Transformation de requ tes (p. 245) e 3. Estimation des co ts (p. 248) u 4. G n ration de plans (p. 250) e e
1. S lectivit , e e 2. Cardinal des ensembles 3. Co t des ressources utilis es : principale unit = nombre u e e dentr es-sorties physiques (blocs de donn es et dindex). e e
S lectivit , sans disponibilit de statistiques : e e e
Utilisation dune valeur interne est utilis e e Exemple : S lectivit dune dune expression du type attribut = e e valeur est estim e meilleure que celle dune expression du type e attribut valeur.
249/263
250/263
La suite :
1. Un sous-plan :
pour chaque sous-requ te d simbriqu e e e e pour chaque vue non int gr e a la requ te. e e ` e
1. Chemins dacc` s (p. 243) e 2. Transformation de requ tes (p. 245) e 3. Estimation des co ts (p. 248) u 4. G n ration de plans (p. 250) e e
2. G n ration et optimisation du plan global de bas en haut (du bloc de e e requ te le plus interne vers la requ te) e e 3. Arr t lorsque l valuateur estime que le co t du dernier plan engendr e e u e est acceptable (i.e. rapport gain escompt -co t examen exhaustif) e u ` Optimisation a base de co ts extensible : u Si fonctions ou index de domaines cr es e Obligation de fournir des fonctions de calcul des statistiques, de la s lectivit et des co ts. e e u
251/263
252/263
1. Architecture du compilateur de requ tes et structure de stockage des e plans dex cution (p. 209) e 2. Processus et principales etapes de traitement des requ tes e ` 3. Optimisation a base de co ts (p. 239) u ` 4. Optimisation a base de r` gles (p. 252) e 5. Directives doptimisation (p. 255)
1. des chemins dacc` s existants e 2. dun poids associ a chaque type de chemins, e`
Meilleur chemin : celui de plus faible poids Quinze types de chemins disponibles Leur choix d pend : e
1. de la forme de la requ te e
253/263
254/263
Conditions et forme de la requ te e where rowid = . . . where R1.A = R2.A and R1.B = valeur et R1, R2 group es (cluster) sur A e et B est cl primaire de R1. e
1. Architecture du compilateur de requ tes et structure de stockage des e plans dex cution (p. 209) e 2. Processus et principales etapes de traitement des requ tes e ` 3. Optimisation a base de co ts (p. 239) u ` 4. Optimisation a base de r` gles (p. 252) e 5. Directives doptimisation (p. 255)
single row by unique or primary key bounded range search or index columns
La clause where porte sur tous les attributs dune cl primaire ou dun index unique. e where A = expression ou where A and A expression1 expression2.
255/263
256/263
Pour forcer certains choix de loptimiseur Sous la forme : . . . /* + directives */ . . . dans une instruction Exemples :
2. M thode dacc` s : full, rowid, index, cluster, index join, rewrite, etc. e e 3. Ordre des jointures : ordered. 4. Algorithme de jointure :
use nl : boucles imbriqu es, e use merge : tri-fusion), use hash : fonction de hachage use nl, use merge recommand s conjointement avec ordered e
257/263
258/263
Vision non nave du traitement des requ tes e Traitement fond sur : e
6. D simbrication (ou non) de sous-requ tes : unnest, no unnest. e e 7. Strat gie de gestion en m moire cache : cache, nocache. e e 8. Ex cution parall` le dinstructions : parallel, noparallel, parallel index e e et noparallel index.
9. etc.
259/263
260/263
Administrer :
R les requis pour administrer : administrateur, ofcier de s curit o e e Administration par isql (Sybase) Administration sous sqlplus (Oracle) Environnements graphiques dadministration
Installer (Serveur(s) SQL et Serveur(s) Back-up) G rer et contr ler les espaces (disque, m moire) et les connexions e o e Allouer r les et privil` ges aux utilisateurs o e Sauvegarder/Restaurer les bases Diagnostiquer les probl` mes syst` me e e Congurer le syst` me pour de meilleures performances e
Possible interf rence avec les concepteurs pour normalisation e
261/263
262/263
References
[1] Besancenot (J.) et al. Les syst` mes transactionnels: concepts, normes et e prouits. Paris, Editions Hermes, 1997, Collection informatique. [2] Boudjlida (N.). Bases de donn es et syst` mes dinformations. Le mod` le e e e relationnel: langages, syst` mes et m thodes (Databases and Information e e Systems. The relational model: Languages, Systems and Design). Dunod, Paris, 1999. Cours et exercices corrig s. Collection Sciences Sup. (in French). e [3] Boudjlida (N.). Gestion et Administration des Bases de Donn es: e Application a Sybase et Oracle. Dunod, Paris, 2003. ` [4] Brown (P.G.). Object-Relational Database Development. Prentice-Hall, 2000. ISBN 0130194603. [5] Oracle-Corp. Oracle 8i, Administrators guide, December 1999. Release 2(8.1.6), Part No A76956-01. [6] Oracle-Corp. Oracle 8i, Backup and Recovery Guide, December 1999.
Chapitre 1 Installation et lancement de serveurs Chapitre 2 Organisation et stockage de donn es e Chapitre 3 Cr ation de bases de donn es e e Chapitre 4 Gestion des utilisateurs Chapitre 5 S curit de fonctionnement et reprises e e Chapitre 6 Traitement des requ tes e Chapitre 7 Adaptation de serveurs et performances
263/263
[7] Oracle-Corp. Oracle 8i Concepts, December 1999. Release 2(8.1.6), Part No A76965-01. [8] Oracle-Corp. Oracle 8i, Designing and Tuning for performance, December 1999. Release 2(8.1.6), Part No A76992-01. [9] Oracle-Corp. Oracle 8i, Recovery Manager Users Guide, December 1999. Release 2(8.1.6), Part No A76990-01.
[10] Oracle-Corp. Oracle 8i Reference, December 1999. Release 2(8.1.6), Part No A76961-01. [11] Oracle-Corp. Oracle Universal Installer Concepts Guide, October 1999. Release 1.7.
[12] Oracle-Corp. Oracle 8i, SQL Reference, September 2000. Release 3(8.1.7), Part No A85397-01. [13] Oracle-Corp. SQL*Plus Users Guide and Reference, September 2000. Release 8.1.7, Part No A82950-01.