Bases de Données Avancées

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

Download "Bases de Données Avancées"

Transcription

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

2 2/88 Partie 2 Introduction Présentation des outils des méthodes pour assurer le suivi de la base et garantir sa performance

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

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

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

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

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

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

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

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

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

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

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

14 14/88 Suppression des statistiques d une table et des index ANALYZE TABLE emp DELETE STATISTICS

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

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

17 17/88 Nouveaux packages pour la génération des statistiques DBMS_UTILITY.ANALYZE_SCHEMA : analyse des schémas Oracle DBMS_STATS : (nouveau package) statistique d objets d Oracle8i

18 18/88 textttdbms UTILITY.ANALYZE SCHEMA Analyse des schémas Oracle Exécution de la procédure analyze_schema du package DBMS_UTILITY Exemple : Execute d b m s u t i l i t y. a n a l y z e s c h e m a ( SCOTT, e s t i m a t e, e s t i m a t e p e r c e n t =>20) ;

19 19/88 DBMS STATS Nouveau package de statistiques d objets d Oracle8i Exécution de calculs avec différentes options Procédure GATHER_INDEX_STATS GATHER_TABLE_STATS Description Rassemblement de statistiques sur les index Rassemblement de statistiques sur les index, colonnes et tables GATHER_SCHEMA_STATS Rassemblement de statistiques sur tous les objets d un schéma GATHER_DATABASE_STATS Rassemblement de statistiques sur tous les objets d une base de données

20 20/88 DBMS STATS Exemple d utilisation d option : Procédure GATHER_TABLE_STATS DBMS STATS. GATHER TABLE STATS ( DEV, > Schéma C o n trat, > Table NULL, > P a r t i t i o n 30, > % de l é c h a n t i l l o n FALSE, > E c h a n t i l l o n de b l o c? FOR ALL COLUMNS, > Colonnes 4, > Degré de p a r a l l é l i s m e DEFAULT, > Table e t t o u t e s l e s p a r t i t i o n s TRUE) ; > Cascade v e r s l e s i n d e x

21 21/88 DBMS STATS Explications : La table CONTRAT du user DEV est analysée avec un degré de parallélisme de 4 Toutes les colonnes sont analysées ainsi que les index correspondants L analyse se fait avec une estimation de 30% au niveau ligne

22 22/88 DBMS STATS Syntaxe BEGIN END; DBMS STATS. g a t h e r t a b l e s t a t s ( DEV, CONTRAT, e s t i m a t e p e r c e n t => DBMS STATS. a u t o s a m p l e s i z e, CASCADE=>TRUE) ;

23 23/88 Restauration des statistiques avec DBMS STATS Si les statistiques : semblent fausses entraine l Optimiseur à générer des mauvauc plans d exécution Il faut restaurez les statistiques d Origines comme suit : BEGIN DBMS STATS. DELETE TABLE STATS ( s c o t t, emp ) ; DBMS STATS. IMPORT TABLE STATS ( s c o t t, emp, s t a t t a b => s a v e s t a t s ) ; END;

24 24/88 Fréquence des statistiques A quelle fréquence les statistiques doivent être calculées? Cela dépend du taux du volume de changement des données dans la base

25 25/88 Suivi des Indicateurs Indicateurs : Ratios Alertes (corruption, messages d erreurs etc.) et les traces Vues de dépannage et réglage Tuning des I/O des requêtes couteuses

26 26/88 Ratios de la base Buffer cache hit Rate nombre de fois qu un block utile à la requête existe dans le buffer cache il faut que ce pourcentage soit proche de 90% s e l e c t round ((1 ( pr. v a l u e /( bg. v a l u e+cg. v a l u e ) ) ) 1 0 0, 2 ) from v $ s y s s t a t pr, v $ s y s s t a t bg, v $ s y s s t a t cg where pr. name= p h y s i c a l r e a d s l e c t u r e s d i s q u e and bg. name= db b l o c k g e t s l e c t u r e s mémoire and cg. name= c o n s i s t e n t g e t s ; l e c t u r e s mémoire Objectif : avoir en mémoire l information dont on a besoin Amélioration de ce ratio : augmenter le db_block_buffers

27 27/88 Ratio de la base Library cache get hit Rate Proportion des requêtes pour obtenir un verrou sur un objet Les requêtes sont satisfaite en trouvant le descripteur de l objet qui doit déjà être en mémoire ce pourcentage doit être proche de 90% s e l e c t round (sum( g e t h i t s )/sum( g e t s ) 100,2) from v $ l i b r a r y c a c h e ; Amélioration des performances : Augmentation des valeurs SHARED_POOL_SIZE, et OPEN_CORSORS dans init.ora

28 28/88 Ratio de la base Dictionary Cache Hit Ratio Mesure du taux de requêtes pour obtenir des informations du dictionnaire de données, des tables et des vues contenant des informations sur la base de données les structures les utilisateurs

29 29/88 Ratio de la base Remarque : Au démarrage, le cache du dictionnaire de données est vide Chaque requête SQL est absente du cache, et entraîne un défaut Comme il y devrait y avoir de plus en plus de données lues dans le cache, le nombre de défaut dans le cache diminuera La base de données peut atteindre un état stable (steady state) : les données du dictionnaires les plus fréquemment utilisées sont dans le cache

30 30/88 Ratio de la base Exemple d utilisation s e l e c t sum( gets g e t m i s s e s ) 100/sum( g e t s ) from v$rowcache ; Cache du dictionnaire : stocké dans le Shared Pool (partie du SGA) Amélioration du ratio : augmentation de la taille du share pool (SHARED_POOL_SIZE dans init.ora) NB : A partir de la version 10g, la manipulation du catalogue est devenue plus intelligente

31 31/88 Ratio de la base Sorts in Memory Mesure de la proportion de données triées qui sont en mémoire plutôt que sur le disque Exemple : s e l e c t round ( (mem. value /(mem. value+dsk. value ) ) 1 0 0, 2 ) from v $ s y s s t a t mem, v $ s y s s t a t dsk where mem. name= s o r t s ( memory ) and dsk. name= s o r t s ( d i s k ) ;

32 32/88 Ratio de la base Remarques : Le tri sur disque utilise les tablespaces temporaires La taille maximal du tri en mémoire est défini par la taille de la zone de tri (sort area size) taille dans lequel de PGA est utilisé Chaque processus Oracle effectuant un tri réserve autant de mémoire, même s il n en a pas besoin. L utilisation de cette mémoire réduit celle disponible pour SGA Optimisation : augmenter le paramètre SORT_AREA_SIZE dans init.ora

33 33/88 Les alertes Fichier alert_oracle_sid.log Exemple : alert_bdainfo2.log Contenu d un fichier d alerte : des informations utilisées par le DBA de la base pour une maintenance, un suivi,.. de la base Oracle Des traces sont rajoutées dans le fichier Log suite à : un démarrage de la base, un arrêt de la base, une création ou la mise à jour d un tablespace, une création, ou la mise à jour d un rollback segment, etc...

34 34/88 Les alertes Fichiers de trace Oracle_Sid_numero.trc Ces fichiers contiennent des informations : utile pour l optimisation de la base : traces générées par les utilitaires tkprof, statpack, utlbstat, etc. ou permettent au DBA, de suivre et de corriger des erreurs, afin d éviter le plantage, ou un mauvais fonctionnement de la base Oracle

35 35/88 Exemple de fichier d alerte F r i Sep : 4 6 : S t a r t i n g ORACLE i n s t a n c e ( normal ) LICENSE MAX SESSION = 0 LICENSE SESSIONS WARNING = 0 LICENSE MAX USERS = 0 S t a r t i n g up ORACLE RDBMS V e r s i o n : System p a r a m e t e r s w i t h non d e f a u l t values : p r o c e s s e s = 320 s e s s i o n s = 357 t i m e d s t a t i s t i c s = TRUE n l s t e r r i t o r y = FRANCE n l s d a t e f o r m a t = YYYY MM DD n l s n u m e r i c c h a r a c t e r s =., c o n t r o l f i l e s = ${ORACLE HOME}/ dbs / o r a d a t a 1 / DWH ctl 1. c t l, ${HOME}/dbdc / o r a c l e / dbs / o r a d a t a 8 / DWH ctl 2. c t l d b b l o c k b u f f e r s = d b b l o c k s i z e = ORA 1652: unable to extend temp segment by 64 i n tablespace S TBS INDX Wed Dec : 2 5 : ORA 1652: unable to extend temp segment by 6400 i n tablespace S TBS DATA Wed Dec : 2 8 : ALTER TABLESPACE S TBS DATA ADD DATAFILE c :\ o r a c l e \ o r a n t \ o r a d a t \dbs\tbs DWH DATA 1. dbf SIZE 512M AUTOEXTEND OFF Wed Dec : 2 8 :

36 36/88 Catalogue Oracle:Instance et base de données V$database : description de la base V$instance : description de l instance V$parameter : paramètres de la base V$process~: nombre de process actifs V$waitstat~: statistiques relatives aux attentes V$system_event : attentes totales pour des évènements particuliers

37 37/88 Parametres de la base : v$parameter S e l e c t Name, Type, Value, d e s c r i p t i o n from v $ p a r a m e t e r NAME TYPE VALUE DESCRIPTION t i m e d s t a t i s t i c s 1 TRUE m a i n t a i n i n t e r n a l t i m i n g s t a t i s t i c s t r a c e e n a b l e d 1 TRUE e n a b l e KST t r a c i n g s q l t r a c e 1 FALSE e n a b l e SQL t r a c e db name 2 dwh d a t a b a s e name s p e c i f i e d i n CREATE DATABASE u t l f i l e d i r 2 u t l f i l e a c c e s s i b l e d i r e c t o r i e s l i s t instance name 2 BCR D instance name supported by the instance d b b l o c k s i z e S i z e o f d a t a b a s e b l o c k i n b y t e s open cursors max # c u r s o r s per s e s s i o n s o r t a r e a r e t a i n e d s i z e s i z e o f in memory s o r t work a r e a r e t a i n e d between f e t c h ca d b f i l e m u l t i b l o c k r e a d c o u n t 3 4 db b l o c k to be read each IO max enabled roles max number of r o l e s a user can have e n a b l e d m a x r o l l b a c k s e g m e n t s 3 78 max. number o f r o l l b a c k segments in SGA cache s g a m a x s i z e max t o t a l SGA s i z e s h a r e d p o o l r e s e r v e d s i z e s i z e i n b y t e s o f r e s e r v e d a r e a o f s h a r e d p o o l l a r g e p o o l s i z e 6 0 s i z e i n b y t e s o f t h e l a r g e a l l o c a t i o n p o o l j a v a p o o l s i z e s i z e i n b y t e s o f t h e Java p o o l

38 38/88 Statistiques relatives aux attentes S e l e c t CLASS, COUNT, TIME from v$waitstat ; CLASS COUNT TIME data b l o c k s o r t b l o c k 0 0 s a v e undo b l o c k 0 0 segment h e a d e r s a v e undo h e a d e r 0 0 f r e e l i s t 0 0 e x t e n t map s t l e v e l bmb 0 0 2nd l e v e l bmb rd l e v e l bmb 0 0 bitmap b l o c k 0 0 bitmap i n d e x b l o c k 0 0 f i l e h e a d e r b l o c k 0 0 unused 0 0 system undo h e a d e r 0 0 system undo b l o c k 0 0 undo h e a d e r undo b l o c k 44 3

39 39/88 attentes totales pour des évènements particuliers s e l e c t event, t o t a l w a i t s, a v e r a g e w a i t from v $ s y s t e m e v e n t ; EVENT TOTAL WAIT AVERAGE WAIT l a t c h f r e e pmon t i m e r enqueue c o n t r o l f i l e s e q u e n t i a l read c o n t r o l f i l e p a r a l l e l w r i t e b u f f e r busy w a i t s l o g f i l e s e q u e n t i a l read l o g f i l e s i n g l e w r i t e l o g f i l e p a r a l l e l w r i t e LGWR wait f o r redo copy db f i l e s e q u e n t i a l read db f i l e s c a t t e r e d read db f i l e s i n g l e w r i t e db f i l e p a r a l l e l w r i t e db f i l e p a r a l l e l read 1 6 l i b r a r y cache p i n l i b r a r y cache l o c k l i b r a r y cache l o a d l o c k 3 0

40 40/88 Catalogue d Oracle : Disques V$datafile : liste des fichiers des données V$filestat : statistiques relatives aux I/O dans les fichiers de données V$tempstat : informations sur les statistiques relatives aux opérations des I/O pour les fichiers de données des TBS temporaires V$segment_statistics : statistiques sur les I/O par segments

41 41/88 Catalogue d Oracle : Contention V$lock : verrou externe V$latch : verrou interne d Oracle V$rollstat : statistiques sur les segments d annulation V$process : nombre de process actifs V$waitstat : statistiques sur les contention des blocks

42 42/88 Catalogue d Oracle : Mémoire V$buffer_pool_statistics : statistiques sur buffer pool V$db_object_cache : objets de la base, dans le cache V$rowcache : échec et succès dans le dictionnaire V$sysstat : statistique sur l instance d Oracle V$librarycache : statistiques sur le librarycache

43 43/88 Catalogue d Oracle : Session V$session : liste des sessions V$sesstat : statistiques des sessions V$session_event : informations sur les attentes d une session V$session_wait : attentes des sessions actives V$waitstat : statistiques relatives aux attentes V$open_cursor : liste des curseurs ouverts

44 44/88 Comment améliorer le temps de réponse des applications? Partitionnement Exécution parallèle Tuning des entrées/sorties Détection des lignes chaînées ou migrées Détection des Index inutilisés Réorganisation des index Utilisation des Hints Codes SQL à ne pas utiliser

45 45/88 Création d une table partitionnée sous Oracle Create t a b l e f a c t u r e ( num fact number ( 5 ), n u m a r t i c l e number ( 5 ), d a t e v e n t e date ) P a r t i t i o n by range ( d a t e v e n t e ) ( p a r t i t i o n p value l e s s than ( t o d a t e ( , YYYY MM DD ) ) p a r t i t i o n p value l e s s than ( t o d a t e ( , YYYY MM DD ) ) p a r t i t i o n p value l e s s than ( t o d a t e ( , YYYY MM DD ) ) )

46 46/88 Exécution parallèle de la création d index sous Oracle Create index i d x t l c n t 1 on t l c n t ( n 0 c n t ) T a b l e s p a c e t b s i n d e x S t o r a g e ( i n i t i a l 10M next 5M) p a r a l l e l e 3 Nologging Local ;

47 47/88 Tuning des Entrées/sorties Desc V$filestat file# phyrds phywrts phyblkrd phblkwrt readtim writetim : numéro du fichier : lecture disque : écriture disque : nbre de block disque lus : nombre de block disque écrits : temps de lecture : temps d écriture

48 48/88 Tuning des Entrées/sorties Pour les fichiers dont la colonne phyrds est importante : vérifier si les tables sont accédées en full scan S e l e c t name, value from V$SYSSTAT Where name l i k e %t a b l e scan ( l o n g% Si la valeur value est importante : vérifier les applications... Définir les bons index

49 49/88 Détection des Lignes chaînées ou migrées Détection de l état de chaînage d une table Analyze table scott. EMP compute statistics Select num rows, c h a i n c n t from d b a t a b l e s where table name = EMP ; Augmenter la valeur de pctfree de la table EMP

50 50/88 Détection des Lignes chaînées ou migrées Etat de chaînage au niveau de la Base Détection de l état de chaînage au niveau de la base : s e l e c t from v $ s y s s t a t where s t a t i s t i c = Table Fetch Continued Row ;

51 51/88 Détection des Index inutilisés Alter index nom index monitoring usage; Select index name, used From v $ i n d e x u s a g e where index name = NOM INDEX ; Alter index nom index nomonitoring usage;

52 52/88 Stratégies d indexation Quand faut-il utiliser les index? Construction d index optimaux Quelques options d indexation : Non-unique index (index avec doublons) Unique index (index sans doublons) Bitmap index Hash partitionned index Composite partitioned index Reverse-key index Function-based index Descending index etc.

53 53/88 Stratégies d indexation Index de fonction : Create index i d x c l t s n o m p r e n on c l i e n t ( upper (nom ), prenom ) ; Create index i d x c l t s c a on c l i e n t ( c a l c u l c a ( i d c l i e n t ) ) ; c a l c u l c a e s t une p r o c é d u r e PL/SQL Quand faut-il reconstruire les index?

54 54/88 Réorganiser/Reconstruire un index? EXECUTE d b m s s t a t s. g a t h e r i n d e x s t a t s ( SCOTT, INDEX 1 ) ; Équivalent de ANALYZE INDEX VALIDATE STRUCTURE Desc Index_stats lf_rows lf_rows_len Del_lf_rows del_lf_rows_len : Nombre de valeurs présentes dans index : Longueur de l index (en octets) : Nombre de valeur supprimées : Longueur d index supprimées (en octets)

55 55/88 Réorganiser/Reconstruire un index? Quand reconstruire un index? S e l e c t name, ( d e l l f r o w s l e n, / l f r o w s l e n ) 100 moyen del from i n d e x s t a t s ; si moyen_del > 20% alors reconstruire index a l t e r index s c o t t. i n d e x 1 r e b u i l d ;

56 56/88 Hint : Utilisation des hints indication placée dans une requête pour orienter le plan d exécution ressemble beaucoup à un commentaire, à l exception du + après le /* Exemple : SELECT / + LE HINT / c o l o n n e ( s ) FROM t a b l e ( s ) WHERE... ; Remarques : Il est très important de placer le hint à l emplacement approprié du code SQL, idéalement avant la référence à la première colonne du code SQL Si le hint inclus est incorrect il sera tout simplement ignoré par l optimiseur, sans affichage de la moindre erreur!

57 57/88 Exemple/syntaxe générique : Utilisation des hints SELECT / + LE HINT / c o l o n n e ( s ) FROM t a b l e ( s ) WHERE... Instantiation de LE_HINT : FULL(table) : Parcours de toute la table (sans utiliser l index) INDEX(table, index) : Force l utilisation de l index de la table NO_INDEX(table, index) : Désactivation de l index de la table ORDERED : Force l ordre de jointure des tables, telles qu elles apparaissent dans la clause From FIRST_ROWS : Force Oracle à choisir le plan d exécution qui retourne les n premières lignes de manière la plus efficace PARALLEL(table, n) : Spécification des n serveurs concurrent pouvant être utilisés pour une requête etc. : (voir :

58 58/88 Utilisation des hints Outils d aide : PRECISE : suivi d une base de production TOAD : suivi du passage du prototypage à la production OEM : Oracle Entreprise Manager etc.

59 59/88 Utilisation des hints Utilisation ORDERED : impose à l optimiseur d utiliser les tables dans l ordre d apparition dans la requête SQL S e l e c t / + ORDERED / d. departement name, e. surname from employees e, departement d where d. d e p a r t e m e n t i d=e. d e p a r t e m e n t i d and d. departement name = : 1 ;

60 60/88 Utilisation des hints Utilisation INDEX : impose à l optimiseur d utiliser les indexes spécifiés par le Hint INDEX S e l e c t / + INDEX( e, e m p l o y e i d x ) / nom from employees e where e. d e p a r t e m e n t i d = : 1 and e. manager id = : 2 ; ALTER SESSION SET o p t i m i z e r g o a l= r u l e f i r s t r o w s a l l r o w s choose ;

61 61/88 Différents types de hints Optimisation : FIRST_ROWS, ALL_ROWS : Force Oracle à utiliser les premièers ou toutes les lignes ORDERED : Accès aux tables dans l ordrede de la clause FROM Accès: FULL(tab), ROWID, PARALLEL

62 62/88 Impact des Hints Exemple SQL> EXPLAIN PLAN 2 SET s t a t e m e n t i d = r e q u e t e 4 3 FOR s e l e c t nom, prenom, num cours, p o i n t s from e l e v e s e, r e s u l t a t s r 4 where r. num eleve = e. num eleve and e. num eleve = 10 ; SQL> SELECT LPAD(,2 (LEVEL 1)) o p e r a t i o n o p t i o n s object name Plan d exécution 2 FROM p l a n t a b l e 3 START WITH i d = 0 AND s t a t e m e n t i d = r e q u e t e 4 4 CONNECT BY PRIOR id = p a r e n t i d AND statement id = requete4 ; Plan d e x é c u t i o n SELECT STATEMENT NESTED LOOPS TABLE ACCESS BY INDEX ROWID ELEVES INDEX UNIQUE SCAN PK ELEVES TABLE ACCESS BY INDEX ROWID RESULTATS INDEX RANGE SCAN PK RESULTATS 6 l i g n e ( s ) s é l e c t i o n n é e ( s ).

63 63/88 Impact des Hints Exemple SQL> EXPLAIN PLAN 2 SET s t a t e m e n t i d = r e q u e t e 4 3 FOR s e l e c t / + FULL( e l e v e s ) FULL( r e s u l t a t s ) / nom, prenom, num cours, p o i n t s from e l e v e s e, r e s u l t a t s r 4 where r. num eleve = e. num eleve and e. num eleve = 10 ; E x p l i c i t é. SQL> SELECT LPAD(,2 (LEVEL 1)) o p e r a t i o n o p t i o n s object name Plan d exécution 2 FROM p l a n t a b l e 3 START WITH i d = 0 AND s t a t e m e n t i d = r e q u e t e 4 4 CONNECT BY PRIOR id = p a r e n t i d AND statement id = requete4 ; Plan d e x é c u t i o n SELECT STATEMENT HASH JOIN TABLE ACCESS BY INDEX ROWID ELEVES INDEX RANGE SCAN PK ELEVES TABLE ACCESS BY INDEX ROWID RESULTATS INDEX RANGE SCAN PK RESULTATS 6 l i g n e ( s ) s é l e c t i o n n é e ( s ).

64 64/88 Sans le Hint : Impact des Hints Exemple Plan d e x é c u t i o n SELECT STATEMENT NESTED LOOPS TABLE ACCESS BY INDEX ROWID ELEVES INDEX UNIQUE SCAN PK ELEVES TABLE ACCESS BY INDEX ROWID RESULTATS INDEX RANGE SCAN PK RESULTATS Avec le Hint : FULL(eleves) et FULL(resultat) Plan d e x é c u t i o n SELECT STATEMENT HASH JOIN TABLE ACCESS BY INDEX ROWID ELEVES INDEX RANGE SCAN PK ELEVES TABLE ACCESS BY INDEX ROWID RESULTATS INDEX RANGE SCAN PK RESULTATS

65 65/88 Les codes SQL à ne pas écrire Premier exemple Eviter l utilisation des index dans les clauses where Consultation par les instructions SQL d un plus grand nombre de blocs de données en utilisant l index plutôt qu en exécutant un balayage complet de la table Amélioration : ajout d une expression anodine à la colonne d index Par exemple : ajout de +0 à une colonne numérique concaténation d une chaîne vide à une colonne alphanumérique positionnement du hint : / + FULL s i vous u t i l i s e z l o p t i m i s e u r s t a t i s t i q u e. S e l e c t / + FULL(EMP) PARALLEL(EMP, 2) / from EMP Where......

66 66/88 Les codes SQL à ne pas écrire Deuxième exemple Eviter de mélanger ou de comparer des valeurs et des types de données de colonnes l optimiseur ignorera l index Améliorations : Si le type de colonne est NUMBER : ne pas utiliser de guillemets pour encadrer la valeur Ne pas oublier d encadrer une valeur avec ses guillemets lorsqu elle est définie comme de type alphanumérique S e l e c t... from EMP where SALARY > 1000 ; Mauvais S e l e c t... from EMP where SALARY > 1000 ; Bon S e l e c t... from EMP where MANAGER = SMITH ; Mauvais S e l e c t... from EMP where MANAGER = SMITH ; Bon

67 67/88 Les codes SQL à ne pas écrire Troisième exemple : Ne pas utiliser l opérateur IS NULL dans une colonne indexée l optimiseur ignorera l index SELECT N emp, name, adr from EMP name i s n u l l ; Quatrième exemple : En cas d utilisation de curseurs ou du SQL dynamique : ne pas coder pas ls instruction avec des valeurs en dur Empêche la réutilisation du code SQL dans le pool partagé Utiliser des variables liées : S e l e c t... from EMP where EMPNO = 2324 ; Mauvais S e l e c t... from EMP where EMPNO = : 1 ; Bon EXECUTE IMMEDIATE Delete from EMP where EMPNO = 2324 ; Mauvais EXECUTE IMMEDIATE Delete from EMP where EMPNO = : 1 USING v a r i a b l e ; Bon

68 68/88 Les codes SQL à ne pas écrire Amélioration de l utilisation des bind variables à partir de Oracle 8i Insertion du paramètre CURSOR_SHARING=force dans le fichier init.ora NB : Possibilité de définir le paramètre au niveau session Mais possibilité d augmentation des délais d analyse Il peut être préférable de réécrire le code

69 69/88 Les codes SQL à ne pas écrire Pas d instruction Insert, update ou delete dans une itération (une boucle PL/SQL) si les opérations peuvent être réalisées en vrac (bulk) Declare C u r s o r... s e l e c t from X Begin For C u r s o r i n... Loop I n s e r t i n t o Z v a l u e s ( C u r s o r. col1, C u r s o r. c o l ,... ) ; Commit ; End l o o p ; End ; Mauvais Begin I n s e r t i n t o Z s e l e c t col1, c o l from X where ; Commit ; End ; Bon

70 70/88 Les codes SQL à ne pas écrire Evitez l utilisation des sous-requêtes Impact négatif sur les performances de votre système en consommant beaucoup de ressources CPU Solution : utilisation des vues en ligne (inline views), c est-à-dire des sous-requêtes dans la clause from de l instruction select, disponible depuis la version 7.3 S e l e c t e. from EMP e Where e. s a l a r y > ( s e l e c t avg ( s a l a r y ) from EMP i where i. d e p t i d = e. d e p t i d ) ; Mauvais S e l e c t e. from EMP e, ( s e l e c t i. d e p t i d DEP, avg ( i. s a l a r y ) SAL from EMP I group by d e p t i d ) EMP VUE where e. d e p t i d = EMP VUE. d e p t i d and e. s a l a r y > EMP VUE. SAL ; Bon

71 71/88 Les codes SQL à ne pas écrire Evitez les produit cartesien Ne pas construire la clause from d une instruction select avec des tables qui n apparaissent pas dans les conditions de jointure de la clause where afin d éviter de réaliser un produit cartésien Regrouper la création des tables et l insert Si la table est créée et alimentée, regrouper l opération : Create t a b l e X ( c o l 1 number, c o l 2 v a r c h a r 2 ( 3 0 )... ) ; I n s e r t i n t o X s e l e c t c o l 1, c o l 2 from Y... ; Mauvais Create t a b l e X ( c o l 1 number, c o l 2 v a r c h a r 2 ( 3 0 )... ) as s e l e c t c o l 1, c o l 2 from Y... ; Bon

72 72/88 Les codes SQL à ne pas écrire Eviter l utilisation de select x from dual Bien qu elle semble innocente, elle peut consommer l essentiel des performances de votre système For i i n l o o p S e l e c t SEQ.NEXTVAL i n t o m a v a r i a b l e from d u a l ; I n s e r t i n t o X v a l u e s ( m a v a r i a b l e,... ) ; End l o o p ; Mauvais For i i n l o o p I n s e r t i n t o X v a l u e s (SEQ. NEXTVAL,... ) ; End l o o p ; Bon

73 73/88 Les codes SQL à ne pas écrire Eviter l utilisation de NOT IN Privilègier l utilisation de NOT EXISTS plutôt que NOT IN dans les clauses where, voir l utilisation d une jointure externe avec not in (lent) S e l e c t a. nom, a. prenom From S a l a r i e a Where a. nom not i n ( s e l e c t nom from F o n c t i o n where j o b = INFORMATICEN ) ; avec jointure externe (plus rapide) S e l e c t a. nom, a. prenom From S a l a r i e a, F o n c t i o n b Where a. nom = b. nom(+) and b. nom i s NULL And b. j o b = INFORMATICIEN ;

Bases de Données Avancées

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

Plus en détail

L optimiser ORACLE. L optimiser ORACLE suit une approche classique:

L optimiser ORACLE. L optimiser ORACLE suit une approche classique: L optimiser ORACLE L optimiser 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,

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

Bases de Données Avancées

Bases de Données Avancées /210 Bases de Données Avancées Optimisation Thierry Hamon Bureau H202 Institut Galilée - Université Paris 13 & LIMSI-CNRS hamon@limsi.fr http://perso.limsi.fr/hamon/teaching/bda-20132014/ INFO2 BDA 2/210

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

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

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

Plus en détail

Optimisation des bases de données

Optimisation des bases de données Optimisation des bases de données Mise en œuvre sous Oracle Laurent Navarro Avec la contribution technique d Emmanuel Lecoester Pearson Education France a apporté le plus grand soin à la réalisation de

Plus en détail

TP ABD. Affichez le nom de la base, le nom de l'instance et la taille des blocs de données.

TP ABD. Affichez le nom de la base, le nom de l'instance et la taille des blocs de données. TP ABD Vues dynamiques adéquates, permettant de vérifier l'état (open) de la base, s assurez que les fichiers de la base ont été crées et vérifier la taille de l instance (Total System Global Area) select

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

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

Optimisation. Bases de Données. Année 2007-08

Optimisation. Bases de Données. Année 2007-08 Optimisation Bases de Données Année 2007-08 Les index Les index sont utilisés pour accélérer l accès aux données. fonction de hachage qui permet de retrouver rapidement un ou des enregistrements les clés

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

UMBB, Département Informatique Cours Master 1 BDA Responsable : A. AIT-BOUZIAD Le 06 Décembre 2011 CHAPITRE 2 CONTRÖLE DE DONNEES DANS SQL

UMBB, Département Informatique Cours Master 1 BDA Responsable : A. AIT-BOUZIAD Le 06 Décembre 2011 CHAPITRE 2 CONTRÖLE DE DONNEES DANS SQL UMBB, Département Informatique Cours Master 1 BDA Responsable : A. AIT-BOUZIAD Le 06 Décembre 2011 CHAPITRE 2 CONTRÖLE DE DONNEES DANS SQL I Gestion des utilisateurs et de leurs privilèges I.1 Gestion

Plus en détail

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

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

Plus en détail

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

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

Objectif. Participant. Prérequis. Pédagogie. Oracle Database 10g - Administration Workshop II. 5 Jours [35 Heures]

Objectif. Participant. Prérequis. Pédagogie. Oracle Database 10g - Administration Workshop II. 5 Jours [35 Heures] Plan de cours disponible à l adresse http://www.adhara.fr/.aspx Objectif Utiliser RMAN pour créer et gérer des jeux de sauvegarde et des copies d'image Récupérer la base de données jusqu'à un point dans

Plus en détail

Auto-évaluation DB2 for z/os: cours de base

Auto-évaluation DB2 for z/os: cours de base Auto-évaluation DB2 for z/os: cours de base Document: f1067test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION DB2 FOR Z/OS:

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

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

PLAN DE COURS ORACLE : ADMINISTRATION DE BASES DE DONNEES. Objectif. Code. Dure e. Public Concerne. Pre -requis. Programme OR305

PLAN DE COURS ORACLE : ADMINISTRATION DE BASES DE DONNEES. Objectif. Code. Dure e. Public Concerne. Pre -requis. Programme OR305 PLAN DE COURS ORACLE : ADMINISTRATION DE BASES DE DONNEES Objectif Administrer une ou plusieurs bases de, tant sous l'aspect "gestionnaire de " que sous l'aspect "responsable système Oracle". Public Concerne

Plus en détail

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

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

Plus en détail

SQL Les fondamentaux du langage (2ième édition)

SQL Les fondamentaux du langage (2ième édition) Introduction 1. Un peu d'histoire 11 2. Les normes SQL 12 3. Description rapide du modèle relationnel 14 3.1 Principaux concepts du modèle relationnel 15 3.2 Principales règles 16 4. Les opérateurs en

Plus en détail

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

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

Plus en détail

Chapitre 1 : Introduction

Chapitre 1 : Introduction Chapitre 1 : Introduction A. Objectifs de l'ouvrage.................. 8 B. Présentation d'oracle11g................. 8 1. Introduction........................ 8 2. Principales nouveautés de la version

Plus en détail

Table des matières. Module 1 L ARCHITECTURE D ORACLE... 1-1. Module 2 L INSTALLATION... 2-1

Table des matières. Module 1 L ARCHITECTURE D ORACLE... 1-1. Module 2 L INSTALLATION... 2-1 Table des matières Module 1 L ARCHITECTURE D ORACLE... 1-1 La base de données... 1-2 Le stockage des données... 1-4 L instance... 1-6 La zone «Shared Pool»... 1-7 La zone «Buffer Cache»... 1-8 L exécution

Plus en détail

Oracle Maximum Availability Architecture

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

Plus en détail

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

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

Optimisation des Requêtes D après J. Akoka - I. Wattiau

Optimisation des Requêtes D après J. Akoka - I. Wattiau NFE113 Administration et configuration des bases de données 2011 Optimisation des Requêtes D après J. Akoka - I. Wattiau 1 Eric Boniface Introduction Fournir l'algorithme d'accès à la B.D. pour répondre

Plus en détail

2 ème PARTIE : LE LANGAGE SQL

2 ème PARTIE : LE LANGAGE SQL 2 ème PARTIE : LE LANGAGE SQL PLAN : I. Le langage de manipulation des données II. Le langage de définition des données III. Administration de la base de données IV. Divers (HORS PROGRAMME) Introduction:

Plus en détail

2.4 Le dictionnaire de données d'oracle a) donner la liste des vues du dictionnaire de données d'oracle(dict) triée par nom

2.4 Le dictionnaire de données d'oracle a) donner la liste des vues du dictionnaire de données d'oracle(dict) triée par nom Exercices A : chap.2 & 3 2.1 Quel est le nom des instances actives sur votre machine host? 2.2 Découverte de l'arborescence d'oracle et de quelques fichiers sensibles a) localiser les fichiers suivants

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

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

SQL : Origines et Evolutions

SQL : Origines et Evolutions SQL : Origines et Evolutions SQL est dérivé de l'algèbre relationnelle et de SEQUEL Il a été intégré à SQL/DS, DB2, puis ORACLE, INGRES, Il existe trois versions normalisées, du simple au complexe : SQL1

Plus en détail

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 SQL pour Oracle 10g Razvan Bizoï Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 Table des matières PRÉAMBULE... MODULE 1 : PRÉSENTATION DE L ENVIRONNEMENT... 1-1 Qu'est-ce

Plus en détail

Oracle Database 10g: Les fondamentaux du langage SQL I

Oracle Database 10g: Les fondamentaux du langage SQL I Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 10g: Les fondamentaux du langage SQL I Durée: 3 Jours Description Ce cours offre aux étudiants une introduction à la technologie de

Plus en détail

Laboratoire 3 Optimisation de requêtes et analyse de la performance. 1 Introduction. Tâche 1 : Évaluation et optimisation de requêtes

Laboratoire 3 Optimisation de requêtes et analyse de la performance. 1 Introduction. Tâche 1 : Évaluation et optimisation de requêtes DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI LOG660 - BASE DE DONNÉES HAUTE PERFORMANCE Laboratoire 3 Optimisation de requêtes et analyse de la performance 1 Introduction L objectif de ce troisième laboratoire

Plus en détail

Devoir Data WareHouse

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

Plus en détail

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL PL/SQL Avertissement : cette partie du cours n est qu un survol du langage PL/SQL, utile pour écrire des procédures stockées simples Elle laisse de côté de nombreuses fonctionnalités du langage Université

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

REAL APPLICATION CLUSTERS

REAL APPLICATION CLUSTERS Oracle upg adm 9i Claude DA COSTA Chap 11 Scalable Real Appli Clusters Page 1/10 REAL APPLICATION CLUSTERS Cash Fusion Shared server_side initialization parameter Oracle upg adm 9i Claude DA COSTA Chap

Plus en détail

Rudiments SQL pour Oracle BDA_RCS

Rudiments SQL pour Oracle BDA_RCS Rudiments SQL pour Oracle BDA_RCS 08-11-2014 1 La base de données Gestion des commandes 08-11-2014 2 Les noms de colonnes sont volontairement simplifiés 3 Ajout de nouvelles colonnes dans des tables qui

Plus en détail

TD 2 ------------------------------------------------------------------------------------------

TD 2 ------------------------------------------------------------------------------------------ TD 2 ------------------------------------------------------------------------------------------ Prenez le fichier init.ora dans $ORACLE_HOME/dbs faites une copie en inittest.ora ouvrir le fichier inittest.ora

Plus en détail

Oracle 12c Administration

Oracle 12c Administration Introduction 1. Objectifs de l'ouvrage 19 2. Présentation d'oracle Database 12c 20 2.1 Introduction 20 2.2 Principales nouveautés de la version 12 22 3. Conventions d'écriture 24 Les bases de l'architecture

Plus en détail

IFT3030 Base de données. Chapitre 6 SQL. Plan du cours

IFT3030 Base de données. Chapitre 6 SQL. Plan du cours IFT3030 Base de données Chapitre 6 SQL Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des

Plus en détail

I) Bases de données et tables :

I) Bases de données et tables : I) Bases de données et tables : Un S.G.B.D. est un outil pour organiser, stocker, modifier, calculer et extraire des infos. Une B.D.R. peut être considérée comme un ensemble de tables à 2 dimensions. Exemple

Plus en détail

Création d'une base de données Oracle

Création d'une base de données Oracle TP1 Création d'une base de données Oracle MASTER INFORMATIQUE I2A Année universitaire 2006-2007 RAPPORT DE PROJET (Document de 15 pages) Encadrant : Rosaire Amore Participants : Erik Allais Abdel Rafrafi

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

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers Département d informatique Collège Lionel Groulx. Préparé par Saliha Yacoub Table des matières. Introduction...

Plus en détail

SQL et Bases de données relationnelles. November 26, 2013

SQL et Bases de données relationnelles. November 26, 2013 November 26, 2013 SQL : En tant que langage d interrogation En tant que langage de mise à jour En tant que langage de définition de données Langages de requête Langages qui permettent d interroger la BD

Plus en détail

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

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

Plus en détail

TP Bases de données réparties

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

Plus en détail

Le Langage De Description De Données(LDD)

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

Plus en détail

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

Ingénierie et Optimisation de Bases de Données

Ingénierie et Optimisation de Bases de Données Ingénierie et Optimisation de Bases de Données FIP - ABD TPs CNAM Paris Nicolas.Travers (at) cnam.fr Table des matières 1 Informations surlabasededonnées 3 1.1 Informations sur les capacités........................

Plus en détail

Examen Administration BD (Module FMIN363)

Examen Administration BD (Module FMIN363) Examen Administration BD (Module FMIN363) 1. Optimisation de requêtes (I. Mougenot) Un caviste veut gérer l ensemble des vins référencés au sein de sa cave. L information associée à la cave est volontairement

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

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

Il est nécessaire de connaître au moins un système d'exploitation de type graphique.

Il est nécessaire de connaître au moins un système d'exploitation de type graphique. GBD-030 Oracle Prise en main Saint-Denis à 9h30 5 jours Objectifs : Une formation Oracle complète pour découvrir tous les concepts du système et les différentes façons de les utiliser concrètement tout

Plus en détail

FONCTIONS DE TRAITEMENT} COUNT

FONCTIONS DE TRAITEMENT} COUNT Nom Prénom Promotion Date Buhl Damien Année 1 Groupe 2 21 Janvier 2007 CER Prosit n 22 Mots-Clés : - Requête/Langage SQL Le langage SQL (Structured Query Language) est un langage de requêtes, il permet

Plus en détail

Développer en PL/SQL. Sommaire du cours

Développer en PL/SQL. Sommaire du cours Sommaire du cours Module 1 Introduction et Rappels Module 2 Eléments de langage PL/SQL Module 3 Accès à la Base de données Module 4 Traitements stockés Module 5 Gestion des exceptions Module 6 - Compléments

Plus en détail

Techniques d optimisation standard des requêtes

Techniques d optimisation standard des requêtes 6 Techniques d optimisation standard des requêtes L optimisation du SQL est un point très délicat car elle nécessite de pouvoir modifier l applicatif en veillant à ne pas introduire de bogues. 6.1 Réécriture

Plus en détail

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Plan Généralités Langage de Définition des (LDD) Langage de Manipulation

Plus en détail

10/04/2011. Toute requête SQL est traitée en trois étapes :

10/04/2011. Toute requête SQL est traitée en trois étapes : 1 1. Rappels 2. Structures d indexation et placement 3. Algorithmes de sélection 4. Algorithmes de jointure Toute requête SQL est traitée en trois étapes : 1. Analyse et traduction de la requête : on vérifie

Plus en détail

Chapitre IV. Les bases de données relationnelles en pratique : Langages d interrogation. Relation : ensemble ou multi-ensemble?

Chapitre IV. Les bases de données relationnelles en pratique : Langages d interrogation. Relation : ensemble ou multi-ensemble? Chapitre IV Les bases de données relationnelles en pratique : Langages d interrogation Relation : ensemble ou multi-ensemble? Un multi-ensemble (multiset) est une collection d éléments pour laquelle on

Plus en détail

Oracle Database 11g : Tuning Release 2

Oracle Database 11g : Tuning Release 2 Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 11g : Tuning Release 2 Durée: 5 Jours Description Le cours démarre avec une base de données inconnue nécessitant un réglage. Les différents

Plus en détail

1 Avant Propos. 2 Eléments d information pour les connexions et les déconnexions

1 Avant Propos. 2 Eléments d information pour les connexions et les déconnexions Université de Lorraine Département Informatique, Master 1 TD UE SGBD Un compte-rendu pourra être demandé à chaque fin de séance. TRES IMPORTANT : La plus extrême rigueur et le plus grand professionalisme

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 journées SQL Server 2013

Les journées SQL Server 2013 Les journées SQL Server 2013 Un événement organisé par GUSS Les journées SQL Server 2013 Les Verrous Arian Papillon, MVP SQL Server Frédéric Brouard, MVP SQL Server Un événement organisé par GUSS Arian

Plus en détail

Informatique Initiation aux requêtes SQL. Sommaire

Informatique Initiation aux requêtes SQL. Sommaire cterrier.com 1/14 04/03/2008 Informatique Initiation aux requêtes SQL Auteur : C. Terrier ; mailto:webmaster@cterrier.com ; http://www.cterrier.com Utilisation : Reproduction libre pour des formateurs

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

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

INITIATION AU LANGAGE SQL

INITIATION AU LANGAGE SQL ECOLE NATIONALE DES INGENIEURS DES TRAVAUX AGRICOLES DE BORDEAUX DEPARTEMENT ENTREPRISE ET SYSTEMES UNITE DE FORMATION INFORMATIQUE ET GENIE DES EQUIPEMENTS ~o~o~o~ INITIATION AU LANGAGE SQL Notes de cours

Plus en détail

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 SQL pour Oracle 10g Razvan Bizoï Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 Ce guide de formation a pour but de vous permettre d'acquérir une bonne connaissance du

Plus en détail

3 - Administration de BD SQL. Chapitre III. Administration des BD SQL. Actions possibles. Composants ORACLE. Chapitre 3 : Administration des BD SQL 1

3 - Administration de BD SQL. Chapitre III. Administration des BD SQL. Actions possibles. Composants ORACLE. Chapitre 3 : Administration des BD SQL 1 3 - Administration de BD SQL Chapitre III Administration des BD SQL 3.1 Création de BD 3.2 Gestion des utilisateurs 3.3 Administration des transactions 3.4 Accès à une BD distante 3.5 Conclusions Composants

Plus en détail

Cours Administration BD

Cours Administration BD Faculté des Sciences de Gabès Cours Administration BD Chapitre 2 : Architecture Oracle Faîçal Felhi felhi_fayssal@yahoo.fr 1 Processus serveur 1 Mémoire PGA Architecture SGBD Oracle Processus serveur 2

Plus en détail

Chapitre IV La Structure physique de la Base de données

Chapitre IV La Structure physique de la Base de données LP Informatique(DA2I) UF7 : Administration Système, Réseaux et Base de données 17/1/2008, Enseignant : M. Nakechbnadi mail : nakech@free.fr Première parie : Administration d une BD Chapitre IV La Structure

Plus en détail

Théorie et pratique de Base de données Oracle M.Boubetra 1 Système d Information But : gérer un ensemble d informations Stockage Consultation Modification Suppression Edition 2 Conception d un système

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

Mostafa Hanoune. Traitement des Exceptions

Mostafa Hanoune. Traitement des Exceptions Mostafa Hanoune 8 Traitement des Exceptions Objectifs A la fin de ce chapitre, vous saurez : Définir des exceptions PL/SQL Reconnaître les exceptions non gérées Lister et utiliser les différents types

Plus en détail

Administration des bases de données sous Oracle. 10g. Fabien De Marchi, Jean-Marc Petit. Université de Lyon. November 22, 2007 1/96

Administration des bases de données sous Oracle. 10g. Fabien De Marchi, Jean-Marc Petit. Université de Lyon. November 22, 2007 1/96 1/96 Administration des bases de données sous Oracle 10g Fabien De Marchi, Jean-Marc Petit Université de Lyon November 22, 2007 2/96 Sur le cours Prérequis et objectifs Prérequis Modèle relationnel (structure,

Plus en détail

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale Département Génie Informatique BD50 TP5 : Développement PL/SQL Avec Oracle SQL Developer Gestion Commerciale Françoise HOUBERDON & Christian FISCHER Copyright Avril 2007 Présentation de la gestion commerciale

Plus en détail

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role IFT7 Programmation Serveur Web avec PHP Introduction à MySQL Base de donnée relationnelle Une base de données relationnelle est composée de plusieurs tables possédant des relations logiques (théorie des

Plus en détail

dans laquelle des structures vont être créées pour une ou plusieurs applications.

dans laquelle des structures vont être créées pour une ou plusieurs applications. Création d'une nouvelle base de données A. Vue d'ensemble 1. Étapes de création d'une nouvelle base de données pour une application Le processus complet de création d'une nouvelle base de données pour

Plus en détail

Évaluation et optimisation de requêtes

Évaluation et optimisation de requêtes LOG660 - Bases de données de haute performance Évaluation et optimisation de requêtes Département de génie logiciel et des TI Question Laquelle de ces requêtes est la plus performante? Requête 1: SELECT

Plus en détail

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

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

Plus en détail

Le Langage SQL version Oracle

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

Plus en détail

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

3. La SGA ou System global Area

3. La SGA ou System global Area 1/11 L'instance Oracle Oracle est une base de données composée de 3 parties différentes : L'instance Les fichiers de données Les fichiers de données facultatifs (fichier d'initialisation, fichier de mots

Plus en détail

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

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

Cours 2 : SQL Structured Query Language

Cours 2 : SQL Structured Query Language Cours 2 : SQL Structured Query Language SQL Langage permettant de définir, manipuler et contrôler les données d une BD relationnelle Objet d une norme de l Institut National Américain de Normalisation

Plus en détail

SQL : création et mises-à-jour de schémas et de données

SQL : création et mises-à-jour de schémas et de données SQL : création et mises-à-jour de schémas et de données Commandes de définition de données (DDL) Commandes de mise-à-jour de données (DML) Vues SQL-MAJ, vues-1 / 33 Exemple Définition de la relation

Plus en détail

Plan de cette partie. Implantation des SGBD relationnels. Définition et fonctionnalités. Index. Coûts pour retrouver des données

Plan de cette partie. Implantation des SGBD relationnels. Définition et fonctionnalités. Index. Coûts pour retrouver des données Implantation des SGBD relationnels Université de Nice Sophia-Antipolis Version 3.4 25//06 Richard Grin Plan de cette partie Nous allons étudier (très rapidement!) quelques éléments de solutions utilisés

Plus en détail

TP Architecture et Administration des SGBDR Un compte-rendu pourra être demandé à chaque fin de séance.

TP Architecture et Administration des SGBDR Un compte-rendu pourra être demandé à chaque fin de séance. Université de Lorraine Telecom Nancy 3ème année, Spécialités IL, SIE, IAMD TP Architecture et Administration des SGBDR Un compte-rendu pourra être demandé à chaque fin de séance. TRES IMPORTANT : La plus

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

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

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

Plus en détail

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28 Introduction 1/28 2/28 Anne-Cécile Caron Licence MIAGE - BDD 2015-2016 Objectifs Après ce cours, les TD et TP correspondants, vous devez être capables de I Créer des tables à partir d un modèle I Utiliser

Plus en détail

Les transactions 1/40. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Les transactions 1/40. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions 1/40 2/40 Pourquoi? Anne-Cécile Caron Master MAGE - BDA 1er trimestre 2013-2014 Le concept de transaction va permettre de définir des processus garantissant que l état de la base est toujours cohérent

Plus en détail