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



Documents pareils
Les bases de l optimisation SQL avec DB2 for i

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

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

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

<Insert Picture Here> Solaris pour la base de donnés Oracle

Bases de données et sites WEB Licence d informatique LI345

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

Les bases de données

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

Cours Bases de données

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

Mise en oeuvre TSM 6.1

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Bases de données et sites WEB

SQL2005, la migration Atelier 316

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

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

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

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

TP Bases de données réparties

Audit et optimisation MySQL 5

SQL Historique

Modernisation et développement d applications IBM i Technologies, outils et nouveautés 2012/2013. Volubis.fr

Implémentation des SGBD

Structure fonctionnelle d un SGBD

Java et les bases de données

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

CLOUD CP3S SOLUTION D INFRASTRUCTURE SOUMIS À LA LÉGISLATION FRANÇAISE. La virtualisation au service de l entreprise. Évolutivité. Puissance.

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

Optimisation SQL. Quelques règles de bases

Encryptions, compression et partitionnement des données

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

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

Edito. Optimisation de la gestion d une Infrastructure Virtuelle. Questions / Réponses Amosdec Q Numéro 7

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

Le langage SQL Rappels

ORACLE 10g Découvrez les nouveautés. Jeudi 17 Mars Séminaire DELL/INTEL/ORACLE

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

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

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

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

Auto-évaluation Oracle: cours de base

Bases de données relationnelles

Ora2Pg Performances. (C) 2013 Gilles Darold

L objet de cet article est de présenter succinctement ces possibilités.

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

SQL Server 2012 Administrez une base de données : Exercices et corrigés

Le Langage De Description De Données(LDD)

Chapitre 10. Architectures des systèmes de gestion de bases de données

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Optimisations des SGBDR. Étude de cas : MySQL

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

1 Introduction et installation

Bases de données avancées Introduction

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

OpenPaaS Le réseau social d'entreprise

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

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

Gestion des utilisateurs et de leurs droits

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

Windows 7, Configuration

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

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

Corrigé de l'atelier pratique du module 5 : Analyse de SQL Server

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

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Retour d'expérience migration Oracle vers PostgreSQL. Vincent Moreau Adeo Services

Mysql. Les requêtes préparées Prepared statements

Sybase Adaptive Server Enterprise 15

SQL Parser XML Xquery : Approche de détection des injections SQL

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

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Modernisation et développement d applications IBM i Technologies, outils et nouveautés 2012/2013. Volubis.fr

Description de SQL SERVER. historique

IBM System i. DB2 Web Query for System i : le successeur de Query/400? Oui, mais bien plus!!!

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

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

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

PDO : PHP Data Object 1/13

BTS/CGO P10 SYSTEME INFORMATION Année

Langage SQL : créer et interroger une base

Fichier sql.ini, Serveurs

Arian Papillon

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

CHAPITRE 1 ARCHITECTURE

MODE OPERATOIRE OPENOFFICE BASE

et Groupe Eyrolles, 2006, ISBN :

ELO Office / Pro Les avantages : Archivage et gestion documentaire

Optimisation de MySQL

Gestion des utilisateurs, des groupes et des rôles dans SQL Server 2008

PERFORMANCE BASE DE DONNÉES

Introduction à. Oracle Application Express

Le Langage SQL version Oracle

PORTAIL DE GESTION DES SERVICES INFORMATIQUES

1. SAS FEDERATION SERVER - POINT D'ACCES UNIQUE ET SECURISE AUX DONNEES DE L'ENTREPRISE

Introduction aux SGBDR

Transcription:

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 un jardin il faut : choisir une bonne variété choisir un bon emplacement surveiller sa croissance la traiter (éventuellement) écrire une belle requête choisir un bon environnement surveiller son exécution l optimiser (éventuellement) = 1

La vie d une instruction SQL Select Parsing Syntaxe Vérif. Optimis. Plan d accès Création ODP Exec. ODP Résultat Optimiseur Moteur SQL Les types de conseil Ils vont concerner : l écriture des instructions SQL l environnement des instructions SQL l optimisation des instructions SQL 2

Conseils d écriture des instructions SQL «Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.» Nicolas Boileau Art poétique 1674 «Ce que l'on écrit bien se lit facilement, Et les ressources pour exécuter arrivent aisément.» 2012 3

N 1 Eviter les écritures dites de «facilité» Exemple : SELECT * FROM mais plutôt : SELECT col1, col4, col6 FROM Diminue le nombre de calls faits au driver Exemple : Une classe Java qui exécute 10 fois une instruction SQL qui interroge une table de 20 colonnes. 'SELECT *' génère 400 calls database dans le driver 'SELECT col1, col4, col6' génère 60 calls database dans le driver Diminue la charge réseau Augmente les chances d utilisation d un IOA (Index Only Access) N 2 Soyez causant Donner à DB2 for i le maximum d information concernant vos requêtes. Clauses : FOR READ ONLY, FOR UPDATE OF, FETCH FIRST N ROWS, OPTIMIZE FOR n/all ROWS 4

N 2 Exemple : Optimize for n/all rows * 20 000 = 1400 s N 3 Surveiller les LIKE Faire attention à l opérateur LIKE lorsqu il est associé à un paramètre du style %xxx% 5

N 4 Eviter les fonctions sur colonne Eviter les fonctions sur les colonnes de la clause WHERE avant la version 6.1 Exemple : SELECT FROM CLIENT WHERE UPPER(nomcli) =? Autorisé à partir de la 6.1 grâce aux index FBI (Function Based Index) N 4 Exemple : index FBI SELECT nomcli, nocli, ville FROM CLIENTS WHERE upper(ville) = upper( MontPELLIER ) 6

N 4 Exemple : index FBI CREATE INDEX CLIENTS_IX1 ON CLIENTS(upper(ville)) N 5 Proscrire l utilisation des fichiers logiques Ne pas utiliser de fichier logique comme nom de table dans les SELECT Utiliser un fichier physique, une table, une vue ou un alias 7

N 6 - Respecter le paradigme En SQL dynamique : 1 préparation avec marqueurs (?), N exécutions avec valeurs de ces marqueurs Conseils de bon environnement pour les instructions SQL 8

N 1 - Choisir l une des dernières versions de l IBM i Etre en IBM i 6.1 ou 7.1 Avoir installé le dernier niveau du groupe de PTF DB2 for i N 2 Vérifier les valeurs système liées à DB2 for i QQRYDEGREE *NONE = pas de // IO pour CQE (défaut) // IO pour SQE pas de // CPU pour CQE ni SQE *IO = // IO pour CQE et SQE *OPTIMIZE = // IO ou // CPU pour CQE et SQE NB : *OPTIMIZE requiert le dispositif DB2 SMP QDBFSTCCOL *ALL (défaut) 9

N 3 - Disposer d un pool mémoire partagé/privé Disposer d un pool partagé/privé de mémoire pour les travaux serveur BD (QZDASOINIT, QSQSRVR, ) Si l ajusteur de performance est actif lui fournir des consignes pour ce pool : % taille minimale de mémoire priorité Si mémoire non contrainte activer l'expert cache pour ce pool N 4 Réorganiser les fichiers/tables Réorganiser les fichiers/tables des applications pour supprimer les lignes supprimées (RGZPFM) Attention aux produits de réplication logiciel Paramètre REUSEDLT(*NO/*YES) Par défaut un fichier est en REUSEDLT(*NO) Par défaut une table est en REUSEDLT(*YES) 10

N 5 Optimiser la journalisation Si version < 7.1 utiliser toutes les unités de disques disponibles pour les récepteurs de journaux (seuil de détachement > 64 Mo * Nb d'unités) Séparer la journalisation des chemins d accès et celle des données RCVSIZOPT(*RMVINTENT) Limiter les données à journaliser Vérifier le temps attribué à SMAPP pour reconstruire les chemins d accès en cas de fin anormale de la partition Envisager l option 42 de l IBM i (HA Journal Performance) Conseils d optimisation des instructions SQL 11

N 1 Avoir une stratégie d indexation de base Qui évite : les créations de certaines structures temporaires (notamment les index) les lectures séquentielles de table ou d index ayant beaucoup de lignes N 2 Chasser le CQE Vérifier pourquoi CQE est encore utilisé pour certaines requêtes et réagir. Table avec logique join et/ou select/omit sous-jacent? > pris en charge à partir de la 5.4 Conversion de donnée (upper, lower, CCSID)? > pris en charge à partir de la 6.1 Select sur fichier logique simple? > pris en charge par la 6.1 par la PTF SI44976 et ses co/préreq ou groupe DB2 for i n 24 12

N 2 Chasser le CQE Select sur fichiers logiques «non simples» * Query/400 et OPNQRYF o * : pris en charge à partir de la 7.1 O : informations dans le moniteur de performance SQL (STRDBMON) à partir de la 6.1 N 2 Chasser le CQE Comment? Avec les 2 PTF SI40460 (6.1) et SI39207 (5.4) vous pouvez lancer un moniteur de performance SQL sur une plus longue période : STRDBMON... COMMENT( WANT_CQE_ONLY ) Attention aux INSERT simples En 6.1 la PTF SI45581 élimine les INSERT simples En 7.1 la PTF SI43994 élimine les INSERT simples 13

N 3 Eviter la prolifération des index Création d un index sur colonnes A, B, C puis création d un index sur colonnes A, B = 2 chemins d accès à maintenir NB : Avec les logiques il y avait partage du chemin d accès N 4 Supprimer les index inutilisés Pour chaque structure d accès il y a deux compteurs et deux dates : - Compteur et date d utilisation en phase d optimisation (SQL) - Compteur et date d utilisation en phase d exécution (SQL) 14

N 5 Etre observateur Savoir distinguer une instruction SQL lourde optimisée d une instruction SQL légère non optimisée... S1 : 5 000 exécutions à 1 s = 5 000 secondes S2 : 500 000 exécutions à 10 ms = 5 000 secondes Optimisation S2 : 10 ms 2 ms = 1 000 secondes N 6 Avoir une stratégie d indexation «haut de gamme» Pour : les requêtes répétitives les requêtes lourdes 15

N 6 Avoir une stratégie d indexation «haut de gamme» La stratégie d indexation «haut de gamme» recouvre : les index parfaits les index EVI les index FBI (à partir de la 6.1) la réécriture automatique des requêtes le scannage d index le GAP/LPG (Génération Anticipée de Prédicats/Lookahead Predicate Generation) les jointures en étoile (star join/snow flake join) les index IOA Exemple indexation «haut de gamme» : IOA select a.orderkey, a.partkey, b.part, a.quantity, a.shipmode from item_fact a left outer join parts b on a.partkey=b.partkey where a.orderkey=1 ; 16

Exemple indexation «haut de gamme» : IOA N 7 Analyser les créations de MTI et les remplacer par des index permanents 17

N 8 Envisager un achat Envisager l acquisition de l option 26 de l IBM i : DB2 Symmetric Multiprocessing Intérêts : Choix d un traitement des requêtes sur plusieurs processeurs simultanément Maintenance des index en insertion groupée (même en programmation HLL) sur plusieurs processeurs simultanément RGZPFM sur plusieurs processeurs Prérequis : Ressources (processeur, mémoire et bras disque) Outils de performance DB2 for i 18

Outils performance pour DB2 for i Ils sont tous standards dans l IBM i et tous graphiques Moniteur de performance SQL Cache de plan et images instantanées Visual Explain Index Advisor Index Condensor Moniteur de performance SQL 19

Cache de plan Visual Explain 20

Visual Explain 6.1 Suivi temps réel d une exécution Visual Explain 6.1 Suivi temps réel d une exécution 21

Index Advisor Les pièges du «chronomètre» Données «froides» versus données «chaudes» Régime de croisière atteint après 2 exécutions en SQL dynamique au sein d un même travail Régime de croisière atteint après 1 exécution en SQL statique au sein d un même travail SQE peut mettre de coté le résultat d une requête et ne pas exécuter à nouveau votre requête La clause OPTIMIZE for N/all rows 22

Pour vous accompagner Prestation sur site (2 jours) Checkup de votre partition IBM i Fourniture d un rapport de contrôle et de préconisations Contre-visite (optionnelle) après mise en oeuvre Cours Analyse et Améliorations de Performance SQL sous DB2 for i (OL40FR, prochaine session : 18-21 juin 2012) Merci pour votre présence et votre participation 23