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

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

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

Transcription

1 Cours 4 Gestion de la performance 1

2 Performance? De quelles performance parle-t on? Quels sont les éléments actifs et quels sont leurs rôles respectifs? Quels sont les mesures de performance significatives sur ces éléments? Quels sont les optimisations possibles, comment les mettre en œuvre? 2

3 Critères de performance (1/3) La notion de performance d un système indique sa capacité à répondre dans les délais prévus aux questions prévues dans le contexte prévu la question essentielles est : «qu est-ce qui est prévu?» 3

4 Critères de performance (2/3) Questions principales : Combien d utilisateurs sont prévus? Comment les utilisateurs interagiront-ils? Où sont positionnés les systèmes? Quelle est la vitesse du réseau? Quelle quantité de données seront accédées par les utilisateurs et quelle proportion l est en principalement en lecture seule? Quel est le temps de réponse exigé par les utilisateurs? Le système doit-il être disponible 24/24? Tous les changements doivent-ils être répercutés en temps réel? 4

5 Critères de performance (3/3) Questions plus liées à un impact budgétaire et de complexité que de tunning : Quelle sera la taille de la base de données? Quelle est le format de sortie des transactions? Quelles sont les conditions de disponibilité? Les qualifications (RH) sont-elles disponibles pour construire et administrer et optimiser cette application? Quels sorte de compromis sera édicté par des contraintes budgétaires? 5

6 Quoi regarder? 1) Code applicatif : Design de la base de données Codage de l application Efficience du code Bonne ordonnancement des taches 2) l instance de la base : Réglage des paramètres de mémoire et de buffers Élimination des blocages Surveillance des IO sur les données 3) l infrastructure sous jacente Système d exploitation Ressources matérielles (contention des IO) 6

7 Éléments critiques de la performance de l application «Si les DBA peuvent identifier les points et problèmes qui sont les causes de ralentissement, les développeurs peuvent les résoudre.» 80 % des gains de performances sont dues à une optimisation du code de l application Par son modèle, Par le codage des requêtes SQL. Mais, la performance est dynamique et la performance d une requête dans un contexte (base de dev) ne sera pas représentatif d une performance dans un autre (prod) ni dans la durée. Le rôle du DBA est d apporter au développeur la vue sur le comportement dynamique de son application. 7

8 Outillage de la mesure de la performance Mise en place de statistiques dynamiques sur le fonctionnement de la base : Observation du fonctionnement des process internes de la base, Observation du fonctionnement des applications (SQL) et du modèle de données (accès aux tables/indexes/enregistrements). Demande un temps d exécution minimal pour être pertinents, Processus récurent «d administration» de la base de données. 8

9 Outillage Oracle pour la performance : AWR Le tuning de performance nécessite un outillage complet et complexe Oracle fournis un ensemble d outils AWR (Automatic Workload Repository) de mesure dynamique de la performance (charge). Les résultats de ces outils sont les points d entré de l analyse du comportement de la base de données 9

10 Outillage Oracle pour la performance : AWR AWR permet de collecter les statistiques sur la performance du système et inclus : Les attentes (wait) provoquées par des vérous sur des ressources La vue sur l historique du temps de BD associée à un processus (vues V$SESS_TIME_MODEL et V$SYS_TIME_MODEL). Les statistiques historisées sur les sessions actives (V$ACTIVE_SESSION_HISTORY) Statistiques système et de session (vues V$SYSSTAT et V$SESSTAT) Statistiques sur l utilisation des objets La liste des requêtes SQL consommatrices de ressource Est une source de données pour les outils externes (existent depuis la 10g) : Automatic Database Diagnostic Monitor SQL Tuning Advisor Undo Advisor Segment Advisor 10

11 Outillage Oracle pour la Fonctionnement : performance : AWR Prise d un «snapshot» du comportement (statistiques diverses) de la base de données pendant à intervals donnés pendant un temps limité (consommation de temps de calcul et d espace). Analyse des statistiques produites Le choix du temps de prise du snapshot est déterminant Analyse des différentes phase de production (plan de charge de la production). 11

12 Analyse des statistiques : les causes possible de perte de performance Les attentes (wait) sont la cause des pertes (ou baisses de performances). Elles sont classifiées selon leur cause principale : Actions d administration : commandes réalisées par un utilisateur privilégié qui induit une attente des autres utilisateurs (la reconstruction d un indexe par exemple). Application : tous les défauts induits par le modèle qui induisent des blocages (mise en attente) du fait de l accès concurent sur une donnée pour une cause explicite ou implicite (modification) Architecture cluster : cach global, synchronisation des noeuds, Actions liées à un commit : évennements d attentes liées au redolog Accès concurrent par beaucoup de sessions vers une même ressource (parsing SQL, verrou sur des buffers, ) Configuration : construction de ressources (log, logfile, buffer, ) de taille insuffisante Idle : sessions inactives Réseau : attente de données envoyée par le réseau Scheduler : attente liée à une priorisation du manager de ressources System I/O : attente sur les I/O système pour les processus en arrière plan (autre que ceux liés à la gestion des données utilisateur). User I/O : attente de lecture de bloc (processus SMON, or MMON). 12

13 Analyse des statistiques : exemples de préconisation ADDM ADDM_REPORT DETAILED ADDM REPORT FOR TASK 'ADDM: _1_198' WITH ID 310 Analysis Period: 10-DEC-2003 from 20:30:51 to 21:00:36 Database ID/Instance: /1 Snapshot Range: from 197 to 198 Database Time: 1119 seconds Average Database Load:.6 active sessions FINDING 1: 100% impact (7136 seconds) SQL statements were found waiting for row lock waits. RECOMMENDATION 1: Application Analysis, 100% benefit (7136 seconds) ACTION: Trace the cause of row contention in the application logic. Use given blocked SQL to identify the database objects involved. Investigate application logic involving DML on these objects. RATIONALE: The SQL statement with SQL_ID 18n2c85u5p8zf was blocked on row locks. RELEVANT OBJECT: SQL statement with SQL_ID 18n2c85u5p8zf update emp set ename = ename RATIONALE: The SQL statement with SQL_ID 275zcmg41cx02 was blocked on row locks. RELEVANT OBJECT: SQL statement with SQL_ID 275zcmg41cx02 RATIONALE: The SQL statement with SQL_ID 5dhfmtds8m5qs was blocked on row locks. RELEVANT OBJECT: SQL statement with SQL_ID 5dhfmtds8m5qs RATIONALE: The SQL statement with SQL_ID 872zuyfy72zs5 was blocked on row locks. RELEVANT OBJECT: SQL statement with SQL_ID 872zuyfy72zs5 SYMPTOMS THAT LED TO THE FINDING: Wait class "Application" was consuming significant database time. (100% impact [7136 seconds]) FINDING 2: 100% impact (1790 seconds) PL/SQL execution consumed significant database time. RECOMMENDATION 1: SQL Tuning, 100% benefit (1790 seconds) ACTION: Tune the PL/SQL block with SQL_ID fjxa1vp3yhtmr. Refer to the "Tuning PL/SQL Applications" chapter of Oracle's "PL/SQL User's Guide and Reference" RELEVANT OBJECT: SQL statement with SQL_ID fjxa1vp3yhtmr BEGIN EMD_NOTIFICATION.QUEUE_READY(:1, :2, :3); END; 13

14 Analyse des statistiques : exemples de préconisation ADDM FINDING 1: 100% impact (18758 seconds) Hard parses due to an inadequately sized shared pool were consuming significant database time. RECOMMENDATION 1: DB Configuration, 100% benefit (11945 seconds) ACTION: Increase the shared pool size by setting the value of parameter "shared_pool_size" to 1712 M. ADDITIONAL INFORMATION: The value of parameter "shared_pool_size" was "1552 M" during the analysis period. SYMPTOMS THAT LED TO THE FINDING: SYMPTOM: Hard parsing of SQL statements was consuming significant database time. (4.3% impact [405 seconds]) FINDING 3: 100% impact (58925 seconds) The throughput of the I/O subsystem was significantly lower than expected. RECOMMENDATION 1: Host Configuration, 100% benefit (58925 seconds) ACTION: Consider increasing the throughput of the I/O subsystem. Oracle's recommended solution is to stripe all data file using the SAME methodology. You might also need to increase the number of disks for better performance. Alternatively, consider using Oracle's Automatic Storage Management solution. RATIONALE: During the analysis period, the average data files' I/O throughput was 4.3 M per second for reads and 22 K per second for writes. The average response time for single block reads was 1 milliseconds. FINDING 2: 4.1% impact (385 seconds) Session connect and disconnect calls were consuming significant database time. RECOMMENDATION 1: Application Analysis, 4.1% benefit (385 seconds) ACTION: Investigate application logic for possible reduction of connect and disconnect calls. For example, you might use a connection pool scheme in the middle tier. RECOMMENDATION 2: Host Configuration, 11% benefit (716 seconds) ACTION: The performance of file /oracle/temp/pwcis/temp_03.dbf was significantly worse than other files. If striping all files using the SAME methodology is not possible, consider striping this file over multiple disks. RELEVANT OBJECT: database file "/u01/app/oracle/oradata/temp_3.dbf RATIONALE: The average response time for single block reads for this file was 91 milliseconds. 14

15 Tuning MySQL Approche différente puisque 2 moteurs coexistent : MyISAM et InnoDB MyISAM, moteur par défaut, stocke les tables sous la forme de 3 fichiers : 1 pour le format de la table, 1 pour les données, 1 pour les indexes. Indexation textuelle plus performante, insertion, lecture et modification plus efficiente dans la plus part des cas. Mais : par de dépendance fonctionnelle entre table (contraintes sur les FK), lock sur l ensemble de la table en cas d insertion. InnoDB, stocke les tables dans un espace de stockage comparable à un TableSpace Oracle. Permet le lock au niveau des enregistrements et les contraintes sur les clés etrangères. Table de choix : Critère Est-ce que la table va être beaucoup plus modifiée (RWUD) que sélectionnée (Transaction Safe) Recherche en texte plein Modélisation et contrôle relationnel Espace de stockage ou RAM limitée Moteur InnoDB MyISAM InnoDB MyISAM Dans le doute MyISAM 15

16 Tuning MySQL via MySQLTuner (1/2) Contrôle via des outils de diagnostic (comme on est dans le monde libre, à chacun de trouver «sa» bonne recette). Par exemple : MySQLTuner (script perl de diagnostic de MySQL) # mysqltuner >> MySQLTuner Major Hayden >> Bug reports, feature requests, and downloads at >> Run with '--help' for additional options and output filtering [OK] Logged in using credentials passed on the command line General Statistics [--] Skipped version check for MySQLTuner script [OK] Currently running supported MySQL version a-3ubuntu5.2-log [OK] Operating on 64-bit architecture Storage Engine Statistics [--] Status: +Archive -BDB -Federated -InnoDB -ISAM -NDBCluster [--] Data in MyISAM tables: 1G (Tables: 724) [!!] Total fragmented tables: 2 16

17 Tuning MySQL via MySQLTuner (2/2) Performance Metrics [--] Up for: 6d 14h 35m 43s (4M q [7.336 qps], 89K conn, TX: 4B, RX: 970M) [--] Reads / Writes: 59% / 41% [--] Total buffers: 5.5M per thread and 1.0G global [OK] Maximum possible memory usage: 1.2G (40% of installed RAM) [OK] Slow queries: 0% (1/4M) [OK] Highest usage of available connections: 33% (10/30) [OK] Key buffer size / total MyISAM indexes: 512.0M/70.0K [OK] Key buffer hit rate: 98.4% [OK] Query cache efficiency: 94.1% [OK] Query cache prunes per day: 0 [OK] Sorts requiring temporary tables: 0% [OK] Temporary tables created on disk: 5% [OK] Thread cache hit rate: 99% [!!] Table cache hit rate: 7% [OK] Open file limit used: 71% [OK] Table locks acquired immediately: 99% Recommendations General recommendations: Run OPTIMIZE TABLE to defragment tables for better performance Increase table_cache gradually to avoid file descriptor limits Variables to adjust: table_cache (> 1024) 17

18 Optimisation des requêtes Une fois la configuration est les problèmes les plus flagrants traités, reste l identification des optimisations «applicatives» via les requêtes les plus coûteuses en temps de calcul. Les plus jouées Les plus consommatrices de ressources Les moteurs enregistrent des statistiques sur les requêtes les plus jouées / consommatrices. 18

19 Optimisation des requêtes But de l optimisation : Réduction du temps de réponse Réduction des ressources nécessaires à la réponse Moyen de l optimisation : Réduire la charge de travail Organiser la charge de travail Paralléliser la charge de travail 19

20 Optimisation des requêtes = comprendre le fonctionnement du moteur sous jacent Dans Oracle, le moteur est CBO (Cost based Optimisation) et se base sur les statistiques pour estimer la méthode optimale pour réaliser une requêtes. Il est aussi possible de «forcer» l utilisation de telle ou telle méthode (Hints) et de bypasser l optimiser. 20

21 Optimisation des requêtes = comprendre le fonctionnement du moteur sous jacent Pour déterminer le meilleur plan d exécution pour chaque ordre SQL, l optimiser : évalue toutes les stratégies possibles utilise des règles préétablies utilise un système de notation des clauses WHERE et utilise des statistiques pour calculer les coûts relatifs d exécution des plans Son savoir-faire repose sur les informations disponibles dans le dictionnaire de données, quelques règles de bases et les HINTS («conseils» donnés par le programmeur SQL).Le dictionnaire de données lui retourne par exemple : quels sont les index unique et non-unique? quelles sont les enveloppes de données (CLUSTERS) qui existent? quelles sont les colonnes NOT NULL? à quoi ressemblent les données (nombre d enregistrements, nombre de valeurs distinctes, nombre de blocs, etc...). 21

22 Optimisation des requêtes = comprendre le fonctionnement du moteur sous jacent Par contre, les informations suivantes ne lui sont pas accessibles : quelle est la distribution des données (sauf avec le mode d analyse par histogrammes)? quelle est la distribution des valeurs des clés d index? combien de d enregistrements sont NULL et dans quelles colonnes? Il se peut donc que le plan généré ne soit pas optimal. Dans ces conditions, l optimiseur peut être aidé voir influencé : en créant des index «accélérateurs» des accès aux données en créant des enveloppes de données de type CLUSTER (HASHED ou INDEX) en analysant les tables pour établir des statistiques en fournissant des conseils (HINTS) à l optimiseur 22

23 Optimisation des requêtes Optimiseur : stratégie globale L optimiseur Oracle à deux stratégies globales possibles : minimiser les ressources pour obtenir TOUTES les lignes ( best throughput) minimiser le temps de réponse pour obtenir LA PREMIER ligne de résultat ( best response time) Le choix de la stratégie peut être configuré à 3 niveaux : au niveau base ( ALTER SYSTEM SET OPTIMIZER_MODE = ) au niveau session ( ALTER SESSION SET OPTIMIZER_MODE= ) au niveau de l ordre SQL ( HINT ) Les différentes valeurs de OPTIMIZER_MODE sont les suivantes : FIRST_ROWS (déconseillé par Oracle) FIRST_ROWS_n (avec n= 1, 10, 100, ou 1000) -> temps réponse minimal ALL_ROWS -> ressources minimales (c est de défaut! Il est bien évidement relatif au type de besoin (requêtes) réalisées! 23

24 Optimisation des requêtes Optimiseur : méthode d accès aux données Oracle à deux méthodes d accès aux données : full table scan : parcours TOUTES les lignes de la table et pour chacune vérifie si elle satisfait aux conditions de recherche exprimées dans les clauses WHERE index scan : parcours l index en fonction des critères des recherche des clauses WHERE et accèdent les seuls enregistrements qui correspondent. L utilisation de telle ou telle méthode est fonction décidée en fonction des statistiques de sélectivité des indexes. 24

25 Optimiseur : Condition d utilisation des indexes Il n y a pas que les statistiques qui amène le choix de l utilisation d un indexe. La formulation de la requête a également un impact déterminant : L index est utilisé... pour une recherche d égalité, par exemple si un index existe sur EMPNO (IEMP1) : SELECT ENAME FROM EMP WHERE EMPNO = 7936 pour une recherche bornée : SELECT ENAME FROM EMP WHERE EMPNO BETWEEN 7000 AND 8000 pour une recherche non bornée : SELECT ENAME FROM EMP WHERE EMPNO > 7000 L index n est pas utilisé si la colonne est modifiée de quelques manière que ce soit... par exemple l index sur SQL n est pas utilisé dans : SELECT ENAME FROM EMP WHERE SAL*12 = 2400 mais il l est avec : SELECT ENAME FROM EMP WHERE SAL = 2400 / 12 25

26 Optimiseur : Condition d utilisation des indexes l index sur ENAME n est pas utilisé dans : SELECT ENAME FROM EMP WHERE SUBSTR (ENAME, 1, 1) = 'S mais il l est dans : SELECT ENAME FROM EMP WHERE ENAME LIKE 'S% Les index ne sont également pas utilisés quand une opération est appliquée sur la colonne comme par exemple : WHERE CHARACTER_COLUMN = SMITH ou WHERE NUMBER_COLUMN + 0 = 10 ou encore WHERE DATE_COLUMN + 0 = SYSDATE. 26

27 Optimiseur : Condition d utilisation des indexes Une conversion de type de données peut désactiver l utilisation d un index. Par exemple, l index sur HIREDATE n est pas utilisé sur : SELECT ENAME FROM EMP WHERE TO_CHAR(HIREDATE, 'DD-MON-YYYY HH24:MI:SS' ) = '01-JAN :00:00' mais il est utilisé avec : SELECT ENAME FROM EMP WHERE HIREDATE = TO_DATE( '01-JAN :00'00', 'DD- MON-YYYY HH24:MI:SS' ) il n est pas utilisé pour : SELECT ENAME FROM EMP WHERE TO_CHAR ( HIREDATE, DD-MON-YY ) = 01-JAN-89 mais il est requis pour : SELECT ENAME FROM EMP WHERE HIREDATE >= TO DATE('01-JAN-89 ) AND HIREDATE < TO_DATE (' 02-JAN-89 ) 27

28 Optimiseur : Impact du type de données Quel que soit le SGBD, uniquement des types de données identiques peuvent être comparés. S ils diffèrent, une conversion est réalisé automatiquement, invalidant alors l usage des index. Les conversions implicites effectuées par le serveur sont les suivantes : character et number : character converti en number (avec to_number) character et date : character converti en date (avec to_date) character et rowid : character converti en rowid (avec char_to_rowid) Pour ne pas tomber dans ce piège, il est recommandé de convertir explicitement les colonnes de types différents en utilisant les fonctions to_char, to_date, to_number, char_to_rowid et rowid_to_char. Essayer également de ne pas stocker des numbers et des dates dans un VARCHAR2 ou CHAR car cela peut aboutir à des conversions implicites et des erreurs de comparaison et de tri. 28

29 Optimiseur : Utilisation des indexes avec LIKE Un index est utilisé pour une clause LIKE si et seulement si la colonne est de type CHAR (ou VARCHAR2) et si la chaîne de comparaison débute avec un caractère. Par exemple, l index sur ENAME est utilisé pour : SELECT ENAME FROM EMP WHERE ENAME LIKE 'S%' mais pas pour : SELECT ENAME FROM EMP WHERE ENAME LIKE '%S% Dans le cas où la colonne est un number ou une date, une conversion implicite est effectuée avec la fonction correspondante et l index n est pas utilisé. Par exemple : SELECT ENAME FROM EMP WHERE EMPNO LIKE '7%' devient : SELECT ENAME FROM EMP WHERE TO_CHAR(EMPNO) LIKE '7%' 29

30 Optimiseur : Condition d utilisation des indexes concaténés Un index concaténé est utilisé si sa première colonne est référencée dans la clause WHERE. Par exemple, l index sur EMPNO, ENAME et SAL est utilisé dans: SELECT ENAME FROM EMP WHERE EMPNO = 7936 Il l est également dans : SELECT ENAME FROM EMP WHERE EMPNO = 7936 AND ENAME = SMITH Et la totalité de l index est même utilisé dans : SELECT ENAME FROM EMP WHERE EMPNO = 7936 AND ENAME = SMITH AND SAL = 5000 L index concaténé est aussi utilisé dans : SELECT ENAME FROM EMP WHERE EMPNO = 7936 AND SAL = 5000 Mais il ne l est pas dans : SELECT ENAME FROM EMP WHERE ENAME = 'SMITH AND SAL =

31 Optimiseur : Utilisation des indexes avec NOT ou NOT NULL Quand il rencontre une clause NOT ou NOT NULL, l optimiseur suppose que la plupart des enregistrements vont être balayés et il n utilise pas les index. Par exemple, l index sur COMM n est pas utilisé dans : SELECT ENAME FROM EMP WHERE COMM IS NOT NULL mais on peut forcer son utilisation par : SELECT ENAME FROM EMP WHERE COMM > -9.99E125 L index sur DEPTNO n est pas utilisé dans : SELECT ENAME FROM EMP WHERE DEPTNO! = 10 Mais il l est pour : SELECT ENAME FROM EMP WHERE DEPTNO < 10 OR DEPTNO > 10 31

32 Optimiseur : Utilisation des indexes avec ORDER BY Un index est directement utilisé (pas de phase finale de tri) pour les clauses ORDER BY dans les cas suivants : l index est pertinent : pas de fonction appliquée sur les colonnes de l ORDER BY et les colonnes de l ORDER BY sont dans les colonnes de tête d un index concaténé, au moins une des colonnes de l index est définie comme NOT NULL l index est déjà utilisé dans les clauses WHERE pas d opérateur UNION, UNION ALL, MINUS, INTERSECT, DISTINCT ni GROUP BY l index porte sur la table directrice (en cas de jointure, cf. plus bas) Si aucune index n est utilisable, une phase de tri est alors effectuée. 32

33 Optimiseur : Utilisation des indexes avec MAX et MIN Un index est utilisé pour les fonctions MAX et MIN dans les cas suivants : l index est pertinent : pas de fonction appliquée sur les colonnes du MAX ou MIN et les colonnes du MAX ou MIN sont dans les colonnes de tête d un index concaténé, il n y a pas de clause WHERE ni de GROUP BY la requête ne possède pas de jointure il n y a pas d autres expressions dans la requête pas d opérateurs autres que et + n est utilisé à l intérieur de la fonction MIN ou MAX la fonction porte sur une seule colonne. Par exemple, l index sur SAL est utilisé dans : SELECT MAX(SAL+1000) *2 FROM EMP il ne l est pas dans : SELECT MAX(SAL*2) FROM EMP 33

34 Optimiseur : Utilisation des indexes unique L optimiseur donne sa préférence à l index qui retourne un enregistrement unique. Il n en utilisera aucun autre défini sur la table. Une fois l enregistrement unique retourné via l index sélectionné, les autres conditions de la requête sont appliquées à cet enregistrement. Par exemple : SELECT ENAME FROM EMP WHERE EMPNO = 7936 AND ENAME = SMITH CREATE UNIQUE INDEX IEMP1 ON EMP (EMPNO) CREATE INDEX IEMP2 ON EMP ( ENAME) utilisera seulement l index sur EMPNO car il est unique. Execution Plan SELECT STATEMENT Optimizer=RULE 1 0 TABLE ACCESS (BY ROWID) OF 'EMP' 2 1 INDEX (UNIQUE SCAN) OF 'IEMP1' (UNIQUE) Si un ROWID est précisé, c est lui qui a la préférence de l optimiseur, même si un index unique existe. 34

35 Optimiseur : Utilisation du dernier indexe créé Si deux index équivalents existent, l optimiseur choisira celui retourné par la requête récursive soumise au dictionnaire de données du serveur Oracle (généralement le dernier index créé). Ceci peut être la cause de dysfonctionnements difficiles à tracer du genre : cela marchait hier et plus ajourd hui. En conséquence, ne jamais écrire des requêtes qui dépendent de cet ordre plus ou moins aléatoire. Par exemple, les index suivants sont équivalents mais leur choix dépend de leur ordre de création : SELECT ENAME FROM EMP WHERE EMPNO = 7936 AND ENAME = SMITH CREATE INDEX IEMP1 ON EMP (EMPNO) CREATE INDEX IEMP2 ON EMP (ENAME) Execution Plan SELECT STATEMENT Optimizer=RULE 1 0 AND-EQUAL 2 1 INDEX (RANGE SCAN) OF 'IEMP1' (NON-UNIQUE) 3 1 INDEX (RANGE SCAN) OF 'IEMP2' (NON-UNIQUE) 35

36 Optimiseur : Utilisation de plusieurs indexes L optimiseur utilisera simultanément plusieurs index sur une même table si : les index sont définis comme non-unique ils portent sur une seule colonne les prédicats sont des égalités. Par exemple : CREATE INDEX IEMP1 ON EMP (JOB) CREATE INDEX IEMP2 ON EMP (DEPTNO) SELECT ENAME FROM EMP WHERE JOB = MANAGER AND DEPTNO = 20 réunira les deux index. Le serveur Oracle procède alors par comparaison successive des ROWID stockés dans les index pour retrouver les enregistrements. Un maximum de 5 index peuvent être fusionnés. S il y en a plus, les 5 premières colonnes des clauses WHERE décideront des 5 index à utiliser. La fusion d index n est utilisée uniquement pour des égalités. Si des opérations de comparaison (> ou <) sont mélangées aux égalités, la fusion n aura pas lieu et l index portant sur la colonne de l égalité sera utilisé. 36

37 Optimiseur : Utilisation des indexes en cas de comparaison Les combinaisons d égalité et de comparaisons utilisent pleinement les index concaténés. Par exemple : SELECT ENAME FROM EMP WHERE DEPTNO = 10 AND SAL > 3000 l index sur EMP (DEPTNO, SAL) est utilisé. Egalement : SELECT ENAME FROM EMP WHERE DEPTNO > 10 AND SAL > 3000 permet d utiliser l index sur EMP (DEPTNO,SAL). 37

38 Optimiseur : Pas besoin de créer des indexes si Il n est pas nécessaire de prévoir des index pour : l exécution d un UNION ALL (ils sont évidemment utilisés pour les clauses WHERE) : les enregistrements de la première table sont simplement retournés suivis des enregistrements de la seconde table. pour un UNION : en fait, le UNION est transformé en UNION ALL et un tri est effectué pour supprimer les doublons. Pour un DISTINCT : Oracle effectue d abord deux tris pour supprimer les doublons et ensuite un MINUS ou un INTERSECT. Oracle effectue un tri et il n est donc pas nécessaire de prévoir des index spécifiques 38

39 Optimiseur : Pas besoin de créer des indexes si Il n est pas nécessaire de prévoir des index pour : Pour un GROUP BY : Oracle effectue un tri pour grouper les enregistrements et il n est donc pas nécessaire de prévoir des index spécifiques Il est par contre important d utiliser une clause WHERE autant que possible à la place du HAVING. Le but est de limiter le nombre d enregistrements qui seront triés en vu pour être ensuite groupés.. Par exemple, il est préférable d écrire : SELECT DEPTNO, AVG ( SAL) FROM EMP WHERE DEPTNO = 10 GROUP BY DEPTNO qui effectuera un regroupement des enregistrements dont DEPTNO = 10 (et qui utilise l index sur DEPTNO) que : SELECT DEPTNO, AVG(SAL) FROM EMP GROUP BY DEPTNO HAVING DEPTNO = 10 39

40 Optimiseur : Indexes et jointures externes Cas des jointures externes, la table non-externe (celle qui n est pas suivie du (+)) est la table directrice. Pour l utilisation des index, plusieurs cas sont possibles : Les clauses WHERE ne portant pas sur la jointure mais sur la table nonexterne sont appliquées AVANT la jointure et les éventuels index existants peuvent être utilisés. Les clauses WHERE ne portant pas sur la jointure mais sur la table externe et qui sont suivies par un (+) sont appliquées AVANT la jointure et les éventuels index existants peuvent être utilisés. Les clauses WHERE ne portant pas sur la jointure mais sur la table externe et sans le (+) sont appliquées APRES la jointure et les éventuels index existants ne peuvent pas être utilisés. 40

41 Optimiseur : Indexes et jointures externes Par exemple : SELECT DNAME, ENAME FROM DEPT, EMP WHERE DEPT.DEPTNO = EMP.DEPTNO(+) AND DNAME = 'ACCOUNTING' CREATE INDEX IDEPT1 ON DEPT(DNAME) La table directrice est DEPT et l index sur DNAME sert à y accéder. Dans le cas : SELECT DNAME, ENAME FROM DEPT, EMP WHERE DEPT.DEPTNO = EMP.DEPTNO(+) AND SAL(+) = 5000 CREATE INDEX IEMP1 ON EMP (SAL) La table directrice est toujours DEPT et un FTS est utilisé pour y accéder. La condition sur SAL est appliquée AVANT (grace au (+)) et l index IEMP1 est utilisé pour accéder à EMP. Execution Plan SELECT STATEMENT 1 0 NESTED LOOPS (OUTER) 2 1 TABLE ACCESS (FULL) OF 'DEPT' 3 1 TABLE ACCESS (BY ROWID) OF 'EMP' 4 3 INDEX (RANGE SCAN) OF 'IEMP1' (NON-UNIQUE) 41

42 Optimiseur : Indexes et jointures externes Egalement : SELECT DNAME, ENAME FROM DEPT, EMP WHERE DEPT.DEPTNO = EMP.DEPTNO ( + ) AND SAL = 5000 CREATE INDEX IEMP1 ON EMP (SAL) Idem que pour précédemment, mais l index IEMP1 n est plus utilisé. Execution Plan SELECT STATEMENT 1 0 FILTER 2 1 MERGE JOIN (OUTER) 3 2 SORT (JOIN) 4 3 TABLE ACCESS (FULL) OF 'DEPT' 5 2 SORT (JOIN) 6 5 TABLE ACCESS (FULL) OF 'EMP' 42

43 Optimiseur : Indexes et OR Il est possible d éviter un FTS dans les requêtes contenant des OR. L objectif de l optimiseur est de découper la requête en plusieurs sous-requêtes et de les réunir avec un UNION ALL. La condition est qu un index existe pour chacune des colonnes du OR (des deux côtés). Par exemple : SELECT ENAME FROM EMP WHERE DEPTNO= 20 OR JOB = 'MANAGER' CREATE INDEX IEMP1 ON EMP (DEPTNO) CREATE INDEX IEMP2 ON EMP (JOB) devient : SELECT ENAME FROM EMP WHERE DEPTNO =20 UNION ALL SELECT ENAME FROM EME WHERE JOB = MANAGER' Execution Plan SELECT STATEMENT 1 0 CONCATENATION 2 1 TABLE ACCESS (BY ROWID) OF 'EMP' 3 2 INDEX (RANGE SCAN) OF 'IEMP2' (NON-UNIQUE) 4 1 TABLE ACCESS (BY ROWID) OF 'EMP' 5 4 INDEX (RANGE SCAN) OF 'IEMP1' (NON-UNIQUE) 43

44 Optimiseur : Indexes et IN série limitée de valeur La même optimisation (OR en UNION ALL) peut également être utilisée avec les IN. Par exemple : SELECT ENAME FROM EMP WHERE DEPTNO IN (10,20) CREATE INDEX IEMP1 ON EMP (DEPTNO) devient : SELECT ENAME FROM EMP WHERE DEPTNO = 10 UNION ALL SELECT ENAME FROM EMP WHERE DEPTNO = 20 Execution Plan SELECT STATEMENT 1 0 CONCATENATION 2 1 TABLE ACCESS (BY ROWID) OF 'EMP' 3 2 INDEX (RANGE SCAN) OF 'IEMP1' (NON-UNIQUE) 4 1 TABLE ACCESS (BY ROWID) OF 'EMP' 5 4 INDEX (RANGE SCAN) OF 'IEMP1' (NON-UNIQUE) 44

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

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

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

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

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

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

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

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

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

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

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

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques Plan de formation : Certification OCA Oracle 11g Description Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques industriels les plus avancés. Cette formation permettra

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

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

Considérons une partie d un modèle conceptuel de données avec les schémas d entités. Figure 1: Une partie du modèle conceptuel de données

Considérons une partie d un modèle conceptuel de données avec les schémas d entités. Figure 1: Une partie du modèle conceptuel de données Considérons une partie d un modèle conceptuel de données avec les schémas d entités suivants: EMP(EmpNo, Enom, Job, DirNo, Sal, Prime) DEPT(DeptNo, Dnom, Adr) Où EmpNo est la clé primaire de EMP et DeptNo

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

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

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

Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 2 L INTERROGATION DES DONNEES... 2-1 3 LES OPERATEURS LOGIQUES... 3-1

Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 2 L INTERROGATION DES DONNEES... 2-1 3 LES OPERATEURS LOGIQUES... 3-1 Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 Le langage SQL... 1-2 Le langage PL/SQL... 1-4 Qu'est-ce que SQL*Plus?... 1-5 Commandes SQL*Plus... 1-7 Variables de substitution... 1-15 La commande

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

Déclencheurs Bases de Données TRIGGER. C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI

Déclencheurs Bases de Données TRIGGER. C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI Déclencheurs Bases de Données TRIGGER C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI Généralités Un déclencheur est un traitement (sous forme de bloc PL/SQL) qui s exécute automatiquement

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

Optimisation de MySQL

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

Plus en détail

Auto-évaluation 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

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

Chapitre 2 La sélection simple

Chapitre 2 La sélection simple 2.1 La sélection simple Chapitre 2 La sélection simple La requête SELECT nous permet d'extraire des données à partir d'une base de données. La clause SELECT est suivie d'une ou de plusieurs colonnes, ce

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

Chapitre 4 : Le langage SQL

Chapitre 4 : Le langage SQL Chapitre 4 : Le langage SQL Table des matières I) Introduction...2 II) Rappel...2 III) Gestion de la base de données...2 1) Création de la base de données...2 2) Modification de la base de données...2

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

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

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

Bases de Données Avancées

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

Plus en détail

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

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

Chapitre 7 Le Langage de Définition de Données

Chapitre 7 Le Langage de Définition de Données Chapitre 7 Le Langage de Définition de Données Jusque là, nous avons réalisé toutes les interrogations possibles sur les données, sans pour autant savoir comment gérer leurs structures. Dans ce chapitre,

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

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

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

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

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

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

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

Programmer avec PL/SQL

Programmer avec PL/SQL Programmer avec PL/SQL École Supérieure de la Statistique et de l Analyse de l Information (ESSAI) Avertissement : cette partie du cours n est qu un survol du langage PL/SQL, utile pour écrire des procédures

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

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

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

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

PERFORMANCE BASE DE DONNÉES

PERFORMANCE BASE DE DONNÉES PERFORMANCE BASE DE DONNÉES Abel Afonso Avant Vente abel.afonso@oracle.com The following is intended to outline our general product direction. It is intended for information purposes only, and may not

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

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

Modèle relationnel Création et modification des relations en SQL

Modèle relationnel Création et modification des relations en SQL Modèle relationnel Création et modification des relations en SQL ENT - Clé sql2009 BD - Mírian Halfeld-Ferrari p. 1 Insertion dans une relation Pour insérer un tuple dans une relation: insert into Sailors

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

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

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

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

Introduction aux bases de données relationnelles

Introduction aux bases de données relationnelles Formation «Gestion des données scientifiques : stockage et consultation en utilisant des ases de données» 24 au 27 /06/08 Introduction aux ases de données relationnelles Christine Tranchant-Dureuil UMR

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

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

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

Plus en détail

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

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

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

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

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

Les requêtes de consultation. Ex. bibliothèque état de la base. Ex. bibliothèque état de la base. Consultation simple d'une table

Les requêtes de consultation. Ex. bibliothèque état de la base. Ex. bibliothèque état de la base. Consultation simple d'une table Les requêtes de consultation Représente la ma jorité des requêtes SQL (Deuxième partie) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Encapsule complètement l'algèbre relationnel Une

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

DB2 10.5 BLU Acceleration Francis Arnaudiès f.arnaudies@fr.ibm.com

DB2 10.5 BLU Acceleration Francis Arnaudiès f.arnaudies@fr.ibm.com DB2 10.5 BLU Acceleration Francis Arnaudiès f.arnaudies@fr.ibm.com #solconnect13 SOLUTIONS ADAPTEES AUX BESOINS CLIENTS Mobile/Cloud Data Serving and Transaction Processing Mobile Storefront JSON Database

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 1 : Vues et Index Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les Vues Généralités Syntaxe Avantages Conditions de mise à jour 2 Index Généralités

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

Faculté de Sciences Économiques et de Gestion. Bases de données. Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont

Faculté de Sciences Économiques et de Gestion. Bases de données. Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont Faculté de Sciences Économiques et de Gestion Bases de données Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont http://eric.univ-lyon2.fr/~jdarmont/ Plan du cours I. Introduction II. Le

Plus en détail

Langage SQL : créer et interroger une base

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

Plus en détail

Langage 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

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

MySQL 5.6 Administration et optimisation

MySQL 5.6 Administration et optimisation Avant-propos 1. MySQL en quelques mots 17 2. Objectifs du livre 18 3. Description 18 Installation du serveur 1. Généralités 21 1.1 Stabilité des versions 21 1.2 Version communautaire et version Enterprise

Plus en détail

1.1/Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition.

1.1/Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition. LP Informatique(DA2I), F7 : Administration Système, Réseaux et Base de données 15/11/2007, Enseignant : M. Nakechbnadi, mail : nakech@free.fr Première parie : Administration d une BD Chapitre 1 : Architecture

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

L2 sciences et technologies, mention informatique SQL

L2 sciences et technologies, mention informatique SQL Bases de données L2 sciences et technologies, mention informatique SQL ou : le côté obscure de la jolie théorie films titre réalisateur année starwars lucas 1977 nikita besson 1990 locataires ki-duk 2005

Plus en détail

INTRODUCTION A SQL. http://www.lri.fr/~rigaux/bd/sql.html

INTRODUCTION A SQL. http://www.lri.fr/~rigaux/bd/sql.html 012345678901234567890123 INTRODUCTION A SQL SQL = Structured Query Language SEQUEL = Structured English as a QUEry Language standard ISO depuis 87. Avantages : implanté + ou - complètement sur principaux

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

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

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

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

Apprendre le langage SQL - Le DDL - 1 / 28 - Apprendre le langage SQL par l exemple Partie 1 : le DDL

Apprendre le langage SQL - Le DDL - 1 / 28 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Apprendre le langage SQL - Le DDL - 1 / 28 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire

Plus en détail

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

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

Plus en détail

SQL Server 2012 - SQL, Transact SQL Conception et réalisation d'une base de données

SQL Server 2012 - SQL, Transact SQL Conception et réalisation d'une base de données Le modèle relationnel 1. Introduction 9 2. Rappels sur le stockage des données 9 2.1 Les différentes catégories de données 10 2.1.1 Les données de base 10 2.1.2 Les données de mouvement 10 2.1.3 Les données

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

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

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition)

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition) Avant-propos 1. Les objectifs de ce livre 13 2. Les principaux sujets qu'aborde ce livre 13 3. À qui s adresse ce livre? 14 4. Les pré-requis 14 Introduction à MySQL 1. Introduction aux bases de données

Plus en détail

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire l objet d une exploitation

Plus en détail

Bases de données relationnelles

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

Plus en détail

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

Optimisations des SGBDR. Étude de cas : MySQL

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

Plus en détail

Chapitre V. Les bases de données relationnelles en pratique : Mise en oeuvre et utilisation

Chapitre V. Les bases de données relationnelles en pratique : Mise en oeuvre et utilisation Chapitre V Les bases de données relationnelles en pratique : Mise en oeuvre et utilisation 175 Mise en oeuvre et utilisation d une base de données : points principaux Organisation d un système de gestion

Plus en détail

Langage de Requêtes. talel@infres.enst.fr

Langage de Requêtes. talel@infres.enst.fr Langage de Requêtes talel@infres.enst.fr Supports de cours : (1) Database Management Systems, R. Ramakrishnan and J. Gehrke, ed. McGrawHill, 2000. (2) Bases de Données, G. Gardarin, ed. Eyrolles, 2001.

Plus en détail

OPTIMISATION DES CUBES OLAP, DE LA CREATION A LA NAVIGATION

OPTIMISATION DES CUBES OLAP, DE LA CREATION A LA NAVIGATION OPTIMISATION DES CUBES OLAP, DE LA CREATION A LA NAVIGATION Vous travaillez avec des cubes OLAP. Vous avez été Caractéristiques : confronté, ou le serez peut-être, à des problèmes tels Catégories : SAS

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

PL/SQL. Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr

PL/SQL. Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr PL/SQL Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr Plan Introduction Environnements Bloc PL/SQL Variables Traitements conditionnels Traitements répétitifs Curseurs Gestion des erreurs Fonctions

Plus en détail

Formation DEV4 : SQL - Conception & Mise en Oeuvre

Formation DEV4 : SQL - Conception & Mise en Oeuvre Synopsis Formation DEV4 : SQL - Conception & Mise en Oeuvre Le SQL (Structured Query Language) est le langage standard de manipulation de données. À ce titre, il est le pilier fondamental de la base PostgreSQL,

Plus en détail

Apprendre le langage SQL - Le DML - 1 / 41 - Apprendre le langage SQL par l exemple Partie 2 : le DML

Apprendre le langage SQL - Le DML - 1 / 41 - Apprendre le langage SQL par l exemple Partie 2 : le DML Apprendre le langage SQL - Le DML - 1 / 41 - Apprendre le langage SQL par l exemple Partie 2 : le DML Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire

Plus en détail

Bases de données avancées Triggers

Bases de données avancées Triggers Bases de données avancées Triggers Wies law Zielonka 12 décembre 2009 Résumé Ces notes ne sont pas corrigées, mais peut-être vous les trouverez quand même utiles pour préparer l examen ou projet. Ne pas

Plus en détail