L optimiseur. Optimisation dans Oracle p.1/22

Documents pareils
ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Évaluation et optimisation de requêtes

Optimisation SQL. Quelques règles de bases

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

Administration de Bases de Données : Optimisation

TP Bases de données réparties

Bases de Données Avancées

Bases de Données Avancées

La présente publication est protégée par les droits d auteur. Tous droits réservés.

Le langage SQL Rappels

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

Optimisations des SGBDR. Étude de cas : MySQL

Langage SQL : créer et interroger une base

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Cours de bases de données. Philippe Rigaux

Les bases de données

Sybase Adaptive Server Enterprise 15

algèbre requêtes relationnelles équivalentes méthodes de calculs équivalentes limites par les ressources : mémoire, disques, cpu...

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

SQL Historique

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

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

Devoir Data WareHouse

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

INTRODUCTION AU DATA MINING

Bases de données avancées Introduction

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

Session S12 Les bases de l optimisation SQL avec DB2 for i

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

TP Contraintes - Triggers

TP11 - Administration/Tuning

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Bases de Données relationnelles et leurs systèmes de Gestion

Introduction au Système de Gestion de Base de Données et aux Base de Données

Les bases de l optimisation SQL avec DB2 for i

- ORS - Optimisation de Requêtes SQL sous Oracle

Le Langage SQL version Oracle

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

Introduction aux Bases de Données 2004/2005

Le Langage De Description De Données(LDD)

Quelques aspects du Relationnel-Objet du SGBD Oracle

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

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

BTS/CGO P10 SYSTEME INFORMATION Année

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

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Bases de Données. Plan

Cours: Les Jointures 1

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

Cours SQL. Base du langage SQL et des bases de données

Présentation Windows Azure Hadoop Big Data - BI

TD n 10 : Ma première Base de Données

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

1 Introduction et installation

Auto-évaluation Oracle: cours de base

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

A QUOI SERVENT LES BASES DE DONNÉES?

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

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Partie 0 : Gestion des tablespace et des utilisateurs... 3

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

16H Cours / 18H TD / 20H TP

PHP 5. La base de données MySql. A. Belaïd 1

IFT3030 Base de données. Chapitre 1 Introduction

1 Modélisation d une base de données pour une société de bourse

Département Informatique de l Institut Universitaire de Technologie de l Université Bordeaux 1 Bases de Données Oracle : administration (cours)

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Optimisation de MySQL

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

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

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

2. Cliquez Contact Directory of Public Administration. 5. Tapez le mot de passe - Hello (pour OFPA). Changez le mot de passe en cas de

Gestion des utilisateurs et de leurs droits

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

Django et PostgreSQL sous la charge

Encryptions, compression et partitionnement des données

Bases de données relationnelles

Administration des bases de données. Jean-Yves Antoine

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

OpenPaaS Le réseau social d'entreprise

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

OPTIMISEZ LES PERFORMANCES DE TRAITEMENT DE VOS DONNEES AVEC SAS/ACCESS. Sommaire

Arian Papillon

Présentation du PL/SQL

Du 10 Fév. au 14 Mars 2014

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Compétences Business Objects

Les bases fondamentales du langage Transact SQL

Bases de données et sites WEB

Bases de données avancées

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

Programmation parallèle et distribuée

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

TP Administration Oracle

Transcription:

L optimiseur L optimiseur ORACLE suit une approche classique : Génération de plusieurs plans d exécution. Estimation du coût de chaque plan généré. Choix du meilleur et exécution. Tout ceci est automatique, mais il est possible d influer, voire de forcer le plan d exécution. Optimisation dans Oracle p.1/22

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

L optimiseur basé sur les règles Priorité Description 1 Accès à un enregistrement par ROWID 2 Accès à un enregistrement dans un cluster 3 Accès à un enregistrement dans une table de hachage (hash cluster) 4 Accès à un enregistrement par clé unique (avec un index)...... 15 Balayage complet de la table Optimisation dans Oracle p.3/22

L optimiseur basé sur les coûts Principaux paramètres : 1. OPTIMIZER_MODE (RULE, CHOOSE, FIRST_ROW, ALL_ROWS). 2. SORT_AREA_SIZE (taille de la zone de tri). 3. HASH_AREA_SIZE (taille de la zone de hachage). 4. HASH_JOIN_ENABLED considère les jointures par hachage. Optimisation dans Oracle p.4/22

Création des statistiques 1. Calcul de la taille et du nombre de lignes : ANALYSE TABLE Film COMPUTE STATISTICS FOR TABLE 2. Analyse des index : ANALYSE TABLE Film COMPUTE STATISTICS FOR ALL INDEX 3. Analyse de la distribution des valeurs : ANALYSE TABLE Film COMPUTE STATISTICS FOR COLUMNS titre, genre Optimisation dans Oracle p.5/22

Les chemins d accès Parcours séquentiel (FULL TABLE sscan). Par adresse (ACCESS BY ROWID). Parcours de regroupement (CLUST ER SCAN). On récupère alors dans une même lecture les n-uplets des 2 tables du cluster. Recherche par hachage (HASH SCAN). Parcours d index (INDEX SCAN). Optimisation dans Oracle p.6/22

Opérations physiques Voici les principales : INT ERSECT ION : intersection de deux ensembles de n-uplet. CONCAT ENAT ION : union de deux ensembles. FILT ER : élimination de n-uplets (sélection). PROJECT ION : opération de l algèbre relationnelle. D autres opérations sont liées aux algorithmes de jointures. Optimisation dans Oracle p.7/22

Algorithmes de jointure sous ORACLE ORACLE utilise trois algorithmes de jointures : Boucles imbriquées quand il y a au moins un index. Opération NESTED LOOP. Tri/fusion quand il n y a pas d index. Opération SORT et MERGE. Jointure par hachage quand il n y a pas d index. Opération HASH JOIN Optimisation dans Oracle p.8/22

L outil EXPLAIN L outil EXPLAIN donne le plan d exécution d une requête. La description comprend : Le chemin d accès utilisé. Les opérations physiques (tri, fusion, intersection,...). L ordre des opérations. Il est représentable par un arbre. Optimisation dans Oracle p.9/22

Optimisation dans ORACLE : exemples Optimisation dans Oracle p.10/22

Rappel du schéma Film (idfilm, titre, année, genre, résumé, idmes, codepays) Artiste (idartiste, nom, prénom, annéenaissance) Role (idacteur, idfilm, nomrôle) Internaute (email, nom, prénom, région) Notation (email, idfilm, note) Pays (code, nom, langue) Optimisation dans Oracle p.11/22

Sélection sans index La requête : EXPLAIN PLAN SET STATEMENT_ID= SelSansInd FOR SELECT * FROM Film WHERE titre = Vertigo Le résultat de EXPLAIN : 0 SELECT STATEMENT 1 TABLE ACCESS FULL FILM Optimisation dans Oracle p.12/22

Plan d exécution On ne fait pas plus simple! PROJECTION PARCOURSSEQUENTIEL Film Optimisation dans Oracle p.13/22

Sélection avec index La requête : EXPLAIN PLAN SET STATEMENT_ID= SelInd FOR SELECT * FROM Film WHERE idfilm=21; Le résultat de EXPLAIN : 0 SELECT STATEMENT 1 TABLE ACCESS BY ROWID FILM 2 INDEX UNIQUE SCAN IDX-FILM-ID Optimisation dans Oracle p.14/22

Plan d exécution Accès à l index, puis à la table. PROJECTION ACCESDIRECT TRAVERSÉEINDEX Film IndexFilm Optimisation dans Oracle p.15/22

Jointure avec index La requête : EXPLAIN PLAN SET STATEMENT_ID= JoinIndex FOR SELECT titre, nom, prenom FROM Film f, Artiste a WHERE idmes = idartiste; Le résultat de EXPLAIN : 0 SELECT STATEMENT 1 NESTED LOOPS 2 TABLE ACCESS FULL FILM 3 TABLE ACCESS BY ROWID ARTISTE 4 INDEX UNIQUE SCAN IDXARTISTE Optimisation dans Oracle p.16/22

Plan d exécution SELECTION BOUCLESIMBRIQUÉES PARCOURSSEQUENTIEL ACCESDIRECT Film RECHERCHEPARCLE idartiste=idmes Artiste IndexArtiste - Optimisation dans Oracle p.17/22

Jointure avec index et sélection La requête : EXPLAIN PLAN SET STATEMENT_ID= JoinSelIndex FOR SELECT nomrole FROM Role r, Artiste a WHERE r.idacteur = a.idartiste AND nom = Pacino ; Le résultat de EXPLAIN : 0 SELECT STATEMENT 1 NESTED LOOPS 2 TABLE ACCESS BY ROWID ARTISTE 3 INDEX RANGE SCAN IDX-NOM 4 TABLE ACCESS BY ROWID ROLE 5 INDEX RANGE SCAN IDX-ROLE Optimisation dans Oracle p.18/22

Plan d exécution SELECTION JOINTURE ACCESDIRECT ACCESDIRECT RECHERCHEINTERVALLE nom= Pacino Artiste RECHERCHEINTERVALLE idacteur Role IdxNom - IndexRole - Optimisation dans Oracle p.19/22

Jointure sans index La requête : EXPLAIN PLAN SET STATEMENT_ID= JoinSansIndex FOR SELECT nom, prenom FROM Film f, Artiste a WHERE f.annee = a.anneenaiss AND titre = Vertigo ; Le résultat de EXPLAIN : 0 SELECT STATEMENT 1 MERGE JOIN 2 SORT JOIN 3 TABLE ACCESS FULL ARTISTE 4 SORT JOIN 5 TABLE ACCESS FULL FILM Optimisation dans Oracle p.20/22

Plan d exécution SELECTION FUSION TRI annéenaiss TRI année PARCOURSSEQUENTIEL PARCOURSSEQUENTIEL Artiste - Film - Optimisation dans Oracle p.21/22

Analyse des coûts Avec l utilitaire TKPROF, on obtient : Le coût CPU Le nombre d entrées/sorties physiques Le nombre d entrées/sorties en mémoire Le nombre de tris etc Un excellent outil à utiliser : la trace automatique qui donne à la fois le EXPLAIN et les coûts d exécution. Optimisation dans Oracle p.22/22