Exercices d optimisation de requêtes SQL

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

Le langage SQL Rappels

SQL Historique

Les bases de données

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

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

Langage SQL : créer et interroger une base

Optimisation SQL. Quelques règles de bases

Systèmes de Gestion de Bases de Données

Cours 4 : Agrégats et GROUP BY

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

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

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

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

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

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

1 Introduction et installation

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

16H Cours / 18H TD / 20H TP

Cours: Les Jointures 1

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

TP Bases de données réparties

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

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

Encryptions, compression et partitionnement des données

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

Compétences Business Objects

Le Langage SQL version Oracle

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

BTS/CGO P10 SYSTEME INFORMATION Année

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

Bases de données relationnelles

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

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

Introduction aux Bases de Données 2004/2005

FileMaker 13. Guide de référence SQL

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

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

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

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

Auto-évaluation SQL. Document: f0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

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

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

Le Langage De Description De Données(LDD)

Les bases de l optimisation SQL avec DB2 for i

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

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

Manuel Viadeis CRM Connecteur intégration L100 étendue.

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

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

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

Évaluation et optimisation de requêtes

Bases de données avancées

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

A QUOI SERVENT LES BASES DE DONNÉES?

Durée : 4 heures coefficient : 4 Le sujet se présente sous la forme de deux dossiers indépendants

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

Base de données relationnelle et requêtes SQL

Comprendre les bases de données

Devoir Data WareHouse

TP 8: LES OPERATEURS ENSEMBLISTES

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

INTRODUCTION AU DATA MINING

MODE D EMPLOI. Plateforme de réflexion et de recherche de la CIDEGEF pour un modèle de management francophone

Gestion de base de données

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Olivier Mondet

Les Utilisateurs dans SharePoint

Les Entrepôts de Données

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

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

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

A QUOI SERVENT LES BASES DE DONNÉES?

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

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

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

MySQL / SQL EXEMPLES

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

Partie II Cours 3 (suite) : Sécurité de bases de données

Bases de données et sites WEB

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

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

Vincent Augusto

Bases de Données. Plan

Sommaire. 2 LINQ to Objects

Administration de Bases de Données : Optimisation

Plan 1/9/2013. Génération et exploitation de données. CEP et applications. Flux de données et notifications. Traitement des flux Implémentation

Optimisations des SGBDR. Étude de cas : MySQL

Bases de données élémentaires Maude Manouvrier

Comprendre et optimiser la base de données WordPress WP TECH 2014

Exercices sur SQL server 2000

Sybase Adaptive Server Enterprise 15

Transcription:

Exercices d optimisation de requêtes SQL Question 1 Il est toujours mieux de sélectionner les attributs spécifiques que l on veut au niveau de la requête SQL. Vous voulez alors afficher seulement le nom et prénom des étudiants SELECT * FROM TableEtudiant; Question 2 La clause «Having» devrait être utilisée seulement pour filtrer les enregistrements après que ceux-ci aient été sélectionnés. La requête suivante est fonctionnelle mais n est pas optimale. Donner alors une requête équivalente. SELECT TitreCours, count(titrecours) FROM TableEtudiant GROUP BY TitreCours HAVING TitreCours!= 'DevAppWebII' AND TitreCours!= 'DevAppBaseDonnées'; Question 3 Il est toujours mieux d éviter le plus possible ou de diminuer le niveau d imbrication. Optimisez alors la requête suivante : SELECT Nom FROM TableEmployee WHERE Salaire = (SELECT MAX(Salaire) FROM TableDetails) AND Age = (SELECT MAX(Age) FROM TableDetails) AND Departement = 'GenieInformatique'; Question 4 Il faut toujours utiliser les opérateurs EXISTS, IN et les jointures de façon appropriée au niveau d une requête SQL.

a) Habituellement, IN a une performance plus lente b) IN est adéquat quand le critère de filtrage est au niveau de la sous-requête c) EXISTS est adéquat quand la plupart du critère de filtrage est au niveau de la requête principale. Optimiser alors la requite suivante: Select * from Produit where NumeroProduit IN (Select NumeroProduit from Commande) Question 5 Utiliser la clause between autant que possible Select NumeroProduit From TableProduit Where Prix > = 10 and Prix <= 20 Question 6 Les opérations ensemblistes combinées avec les index sont plus performantes que les opérations booléennes. Optimiser alors la requête SQL suivante : Select * from TableEtudiant where attr1 = valeur1 or attr2 = valeur2 Optimiser alors cette requite SQL et dîtes à quel attribut vous pouvez mettre les indexs. Question 7 Lorsque vous tentez d utiliser une fonction sur un attribut indexé au niveau de la clause where en transact-sql, l utilité d avoir un index n a alors plus lieu. Optimiser par exemple la requête : SELECT courriel FROM TablePersonne WHERE left(courriel,2) = 'As' Ici, courriel est indexé mais n a aucune influence puisqu il est encapsulé au niveau de la function left en transact-sql

Question 8 Il ne faudrait pas utiliser d attribut spécifique lorsque l on utilise une clause EXISTS au niveau d une sous-requête imbriquée. Optimiser alors la requête SQL suivante : From tableetudiant Where not exists (select NumeroEtudiant from TableInscription where cours.titre = prog ) Question 9 Lorsque l on peut, il est toujours mieux de remplacer les opérations ensemblistes telles que UNION, EXCEPT et INTERSECT en jointure. Optimiser donc les requêtes SQL suivantes : a) b) From TableEtudiant EXCEPT from TableInscription From TableEtudiant INTERSECT From TableInscription

Solution Question 1 SELECT Prenom, Nom FROM TableEtudiant; Question 2 SELECT TitreCours, count(titrecours) FROM TableEtudiant WHERE TitreCours!= ' DevAppWebII ' AND TitreCours!= ' DevAppBaseDonnées ' GROUP BY TitreCours; Question 3 SELECT Nom FROM TableEmployee WHERE (Salaire, Age ) = (SELECT MAX (Salaire), MAX (Age) FROM TableDetails) AND Departement = 'GenieInformatique'; Question 4 Select * from Produit P where EXISTS (select * from Commande c where c.numeroproduit = p.numeroproduit) Question 5 SELECT NumeroProduit FROM TableProduit WHERE Prix BETWEEN 10 and 20 Question 6

Select * from TableEtudiant where attr1 = valeur1 Union Select * from TableEtudiant where attr2 = valeur2 Les index peuvent être attr1 et attr2 Question 7 SELECT courriel FROM TablePersonne WHERE courriel like 'As%' Question 8 From tableetudiant Where not exists (select * from TableInscription where cours.titre = prog ) Question 9 a) From TableEtudiant E Left outer join TableInscription I ON E.NumeroEtudiant = I.NumeroEtudiant where I.NumeroEtudiant is NULL b) From TableEtudiant E inner join TableInscription I ON E.NumeroEtudiant = I.NumeroEtudiant where