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

Documents pareils
Master Exploration Informatique des données DataWareHouse

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

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

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

Oracle Décisionnel : Modèle OLAP et Vue matérialisée D BILEK

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

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

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

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

Le Langage De Description De Données(LDD)

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Intégrité des données

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

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

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Bases de données multidimensionnelles et mise en œuvre dans Oracle

Bases de données relationnelles

Introduction aux SGBDR

Compétences Business Objects

Le Langage SQL version Oracle

Langage SQL : créer et interroger une base

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

Datawarehouse and OLAP

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

A QUOI SERVENT LES BASES DE DONNÉES?

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

SQL Historique

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Eduardo Almeida. Master Alma Université de Nantes

Auto-évaluation Oracle: cours de base

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

Encryptions, compression et partitionnement des données

Bases de Données Avancées

Bases de Données OLAP

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

TP Bases de données réparties

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

Devoir Data WareHouse

Bases de Données Réparties

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

Les bases de données

Le langage SQL (première partie) c Olivier Caron

Olivier Mondet

OpenPaaS Le réseau social d'entreprise

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Base de données II Module 3b

Méthodologie de conceptualisation BI

TP Contraintes - Triggers

Optimisation SQL. Quelques règles de bases

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

Du 10 Fév. au 14 Mars 2014

NF26 Data warehouse et Outils Décisionnels Printemps 2010

2 Serveurs OLAP et introduction au Data Mining

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

Historisation des données

Département Génie Informatique

A QUOI SERVENT LES BASES DE DONNÉES?

Création et Gestion des tables

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

CATALOGUE DE FORMATIONS BUSINESS INTELLIGENCE. Edition 2012

Cours Bases de données

et les Systèmes Multidimensionnels

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

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Pratique et administration des systèmes

Ora2Pg Performances. (C) 2013 Gilles Darold

Bases de données élémentaires Maude Manouvrier

Sybase Adaptive Server Enterprise 15

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

16H Cours / 18H TD / 20H TP

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

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

Les Entrepôts de Données

Entrepôts de données : Systèmes OLAP : ROLAP, MOLAP et OLAP (5) 1 Introduction aux systèmes

CHAPITRE 1 ARCHITECTURE

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

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Optimisations des SGBDR. Étude de cas : MySQL

Oracle aujourd hui. Le Point de vue de l Expert. Pierre-Louis Marcenac Learning Tree International

Pascale Borla-Salamet Consultante Avant Vente Oracle France. Oracle Exadata Performance et Optimisation de votre Datawarehouse

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

I4 : Bases de Données

BD51 BUSINESS INTELLIGENCE & DATA WAREHOUSE

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

Les entrepôts de données et l analyse de données

Objectif. Participant. Prérequis. Oracle BI Suite EE 10g R3 - Développer des référentiels. 5 Jours [35 Heures]

Les bases de l optimisation SQL avec DB2 for i

Bases de Données Avancées

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

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

Gestion de base de données

Objectifs du TP : Initiation à Access

Présentation du module Base de données spatio-temporelles

Transcription:

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 index est partionnée selon la date des contrats (avant 2000, entre 2000 et 2010 et après). Tableau 14-67 Création d une table IOT partitionnée CREATE TABLE Historique_partition_iot (opeid CHAR(4) NOT NULL, adhid NUMBER(10) NOT NULL, date_contrat DATE NOT NULL, categorie VARCHAR(15) NOT NULL, reliquat NUMBER(7) NOT NULL, CONSTRAINT pk_historique_partition_iot PRIMARY KEY (opeid,adhid,date_contrat)) ORGANIZATION INDEX TABLESPACE tbs_index INCLUDING date_contrat OVERFLOW TABLESPACE users PARTITION BY RANGE (date_contrat) (PARTITION avant_2000 VALUES LESS THAN (TO_DATE('01/01/2000','DD/MM/YYYY')) TABLESPACE tbs_part1, PARTITION de_2000_a_2010 VALUES LESS THAN (TO_DATE('01/01/2011','DD/MM/YYYY')) TABLESPACE tbs_part2, PARTITION apres VALUES LESS THAN (MAXVALUE) TABLESPACE tbs_part3); Colonnes de la table. Définition de la clé primaire. Le segment d index se trouvera dans le tablespace tbs_index. Les 3 premières colonnes seront dans le segment d index, le débordement dans le tablespace users. Le partitionnement est défini sur la date du contrat et chaque partition se trouve dans un tablespace distinct. Vues matérialisées Les vues (dématérialisées) étudiées au chapitre 5 permettent de simplifier l écriture de certaines requêtes particulièrement complexes mais ne garantissent rien en regard des performances. Dans le pire des cas, une vue peut être consommatrice de ressources si d autres vues sont impliquées en cascade dans la requête. Les vues matérialisées (materialized views, anciennement snapshots) sont formées à partir de requêtes dont le résultat est stocké (comme les lignes d une table). Une requête composant une vue matérialisée peut concerner des tables, vues et vues matérialisées. Dans un contexte de réplication, l utilisation première de ces vues, une vue matérialisée s appelle master table. Dans un contexte de data warehouse, une vue matérialisée est nommée detail table. 652 Éditions Eyrolles

chapitre n 14 Optimisations Figure 14-24 Vues matérialisées doc. Oracle Sans aborder les avantages de ces vues dans une architecture répartie ou d entrepôts de données, du point de vue des performances, les vues matérialisées répondent parfaitement à l amélioration des jointures du fait du stockage de lignes précalculées et de la possibilité de réécriture de requêtes (query rewrite). De plus, le partitionnement et l indexation sont possibles. Réécriture de requêtes La réécriture de requêtes est une technique d optimisation qui transforme une requête complexe émise sur une table volumineuse en une requête sémantiquement équivalente interrogeant la vue matérialisée. Dès qu il est plus intéressant d utiliser la vue matérialisée parce qu elle contient des résultats déjà calculés (agrégats et jointures), toute requête est réécrite (d une manière transparente pour l utilisateur) et utilise la vue à la place de la table. Aucun code n est à ajouter dans l instruction SQL qui ne référence que la (ou les) tables interrogées. Éditions Eyrolles 653

Partie III SQL avancé Figure 14-25 Réécriture de requêtes Le rafraîchissement Du fait du stockage redondant des données (dans les tables et dans la vue matérialisée), des méthodes de synchronisation (refresh) sont disponibles. La méthode de rafraîchissement peut être incrémentale (fast refresh) ou complète (complete refresh). Le rafraîchissement incrémental évite de reconstruire entièrement la vue matérialisée. Cependant, ce mécanisme doit s opérer relativement rapidement (à la demande ou périodiquement) pour garantir l intégrité des données. Chaque table est associée à un journal d opérations (materialized view log) qui recense toutes les modifications effectuées sur la table. Le rafraîchissement complet se produit à la création de la vue matérialisée (définie avec BUILD IMMEDIATE). Bien que ce procédé puisse être couteux si les volumes de données manipulés sont importants, les requêtes interrogeant ces tables seront bien plus performantes. Exemples Dans un contexte de réplication, les vues matérialisées permettent de maintenir sur une base locale des copies de données distantes. Ces copies peuvent être modifiables sous réserve d utiliser l option Advanced Replication. En général, ces vues sont basées sur la clé primaire des tables (ou les rowid). Dans un contexte d entrepôts de données, les vues matérialisées composent généralement des regroupements (agrégations) et des jointures. Utilisons une vue matérialisée pour préparer les extractions d adeptes de l escrime et du tennis de table et comparons quelques avec une solution classique. 654 Éditions Eyrolles

chapitre n 14 Optimisations Tableau 14-68 Création d une vue matérialisée CREATE MATERIALIZED VIEW adh_escrime_pingpong TABLESPACE tbs_cluster BUILD IMMEDIATE REFRESH COMPLETE ENABLE QUERY REWRITE AS SELECT a.adhid, s.spid, s.splibelle, a.nom, a.prenom, a.tel, a.date_nais, a.solde FROM Adherentbis a, Sport s, Pratiquebis p WHERE s.splibelle IN ('Escrime','Ping-pong') AND a.adhid = p.adhid AND s.spid = p.spid ORDER BY a.adhid,a.nom; Création de la vue matérialisée située dans le tablespace tbs_cluster. La construction est immédiate et la vue est éligible à la réécriture de requête (ENABLE QUERY REWRITE). Les requêtes de jointure entre adhérents et l escrime ou le tennis de table utiliseront la vue à la place des tables d une manière bien plus efficace. L opérateur que vous verrez apparaître dans vos plans d exécution est MAT_VIEW REWRITE ACCESS FULL. Le rafraîchissement automatique nécessite de créer un journal d opérations par table interrogée. Les exemples suivants décrivent des vues matérialisées qui seront mises à jour automatiquement. La première sera actualisée dès la modification de la table Sport. La deuxième le sera tous les lundis à 15h00. Tableau 14-69 Rafraîchissement automatique CREATE MATERIALIZED VIEW LOG ON Sport WITH PRIMARY KEY, ROWID; CREATE MATERIALIZED VIEW catalogue_sports REFRESH FAST ON COMMIT WITH PRIMARY KEY AS SELECT spid, splibelle FROM Sport; CREATE MATERIALIZED VIEW LOG ON Adherentbis WITH PRIMARY KEY, ROWID PURGE REPEAT INTERVAL '5' DAY; CREATE MATERIALIZED VIEW Adherent_hommes REFRESH FAST START WITH ROUND(SYSDATE + 1) + 11/24 NEXT NEXT_DAY(TRUNC(SYS- DATE),'LUNDI')+15/24 WITH PRIMARY KEY AS SELECT a.adhid, a.nom, a.prenom, a.tel, a.date_nais, a.solde FROM Adherentbis a WHERE a.civilite = 'Mr.'; Création du journal des opérations. Création de la vue matérialisée avec une contrainte primary key (colonne clé primaire de la table). Rafraîchissement incrémental (fast) après modifications sur la table. Création du journal des opérations qui sera vidé tous les 5 jours. Création de la vue matérialisée avec une contrainte primary key (colonne clé primaire de la table). Rafraîchissement incrémental, première actualisation : le lendemain à 11h puis tous les lundis à 15h. Éditions Eyrolles 655