Les bases de l optimisation SQL avec DB2 for i

Documents pareils
Session S12 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

Bases de données et sites WEB

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

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

Les bases de données

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

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

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

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

Structure fonctionnelle d un SGBD

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

Mise en oeuvre TSM 6.1

TP Bases de données réparties

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

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

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

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

Java et les bases de données

Implémentation des SGBD

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

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

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

Cours Bases de données

Ora2Pg Performances. (C) 2013 Gilles Darold

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

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

Optimisation SQL. Quelques règles de bases

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

Optimisations des SGBDR. Étude de cas : MySQL

SQL2005, la migration Atelier 316

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

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

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

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

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

Le langage SQL Rappels

SQL Historique

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

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

Le Langage De Description De Données(LDD)

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

Audit et optimisation MySQL 5

A QUOI SERVENT LES BASES DE DONNÉES?

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

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

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

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

Encryptions, compression et partitionnement des données

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

Gestion des utilisateurs et de leurs droits

Bases de données avancées Introduction

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

BTS/CGO P10 SYSTEME INFORMATION Année

Langage SQL : créer et interroger une base

et Groupe Eyrolles, 2006, ISBN :

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

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

Bases de données relationnelles

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

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

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

Sybase Adaptive Server Enterprise 15

Java DataBaseConnectivity

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

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

Thème : Gestion commerciale

SQL Server 2008 et YourSqlDba

Auto-évaluation Oracle: cours de base

1 Introduction et installation

Windows 7, Configuration

CHAPITRE 1 ARCHITECTURE

Documentation d information technique spécifique Education. PGI Open Line PRO

SCOM 2012 (System Center Operations Manager) De l'installation à l'exploitation, mise en oeuvre et bonnes pratiques

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

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

OpenPaaS Le réseau social d'entreprise

PERFORMANCE BASE DE DONNÉES

Description de SQL SERVER. historique

Introduction à. Oracle Application Express

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

Du 10 Fév. au 14 Mars 2014

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

<Insert Picture Here> Exadata Storage Server et DB Machine V2

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

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

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

Architectures web/bases de données

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

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

Introduction aux SGBDR

Administration des bases de données relationnelles Part I

Audit activité base Oracle / SAP

Transcription:

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 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 Ecriture des instructions SQL (6) Environnement des instructions SQL (6) Optimisation des instructions SQL (8) 2

Conseils d écriture des instructions SQL 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 20 fois une instruction SQL qui interroge une table de 20 colonnes. 'SELECT * ' génère 800 calls database dans le driver 'SELECT col1, col4, col6' génère 120 calls database dans le driver Augmente les chances d utilisation d un IOA (Index Only Access) Diminue la charge réseau 3

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 ALL/n ROWS N 3 Surveiller les LIKE Faire attention à l opérateur LIKE lorsqu il est associé à un paramètre du style %xxx% 4

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 de type «FBI» : CREATE INDEX CLIENT_IX1 on CLIENT (UPPER(nomcli)) N 5 Proscrire l utilisation des fichiers logiques Ne pas utiliser de fichier logique comme nom de table dans les SELECT 5

N 6 - Respecter le paradigme En SQL dynamique : 1 préparation avec marqueurs, N exécutions Instruction SQL à un seul endroit dans le code Conseils de bon environnement pour les instructions SQL 6

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/SQE = // IO pour CQE/SQE *IO *OPTIMIZE = // IO ou // CPU pour CQE/SQE NB : *OPTIMIZE requiert le dispositif DB2 SMP QDBFSTCCOL *ALL (défaut) 7

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 réf. croisées de SQL Réorganiser les fichiers des références croisées SQL si nécessaire Globalement : RCLSTG SELECT(*DBXREF) Si nécessaire : RCLDBXREF OPTION(*CHECK) LIB(*ERR) RCLDBXREF OPTION(*FIX) LIB(MaLib) 8

N 5 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) N 6 Optimiser la journalisation 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 de chemins d accès et de 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) 9

Conseils d optimisation des instructions SQL 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 10

N 2 Chasser le CQE Vérifier pourquoi CQE est encore utilisé pour certaines requêtes et réagir. Table avec logique select/omit sous-jacent? * Conversion de type de donnée (upper, lower, CCSID)? ** Fichier logique? *** * : pris en charge à partir de la 5.4 ** : pris en charge à partir de la 6.1 *** : pris en charge à partir de la 7.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 11

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) 12

N 5 Etre observateur Savoir distinguer une instruction SQL lourde optimisée d une instruction SQL légère non optimisée... 5 000 exécutions à 1 s = 5 000 secondes 500 000 exécutions à 10 ms = 5 000 secondes 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 Ce sont des VIR à ne pas confondre avec des VIP 13

N 6 Avoir une stratégie d indexation «haut de gamme» La stratégie d indexation «haut de gamme» recouvre : les index parfaits la réécriture automatique des requêtes l utilisation d index IOA le scannage d index l utilisation d index EVI le GAP/LPG (Génération Anticipée de Prédicats/Lookahead Predicate Generation) les jointures en étoile (star join/snow join) N 7 Analyser les créations de MTI et les remplacer par des index permanents 14

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 // CPU des requêtes Maintenance en // des index en insertion groupée (même en programmation HLL) RGZPFM en // CPU Prérequis : Ressources (CPU, mémoire et bras disque) Outils de performance DB2 for i 15

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

Cache de plan Visual Explain 17

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 Régime de croisière atteint après 1 exécution en SQL statique 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 18

Pour vous aider 2 approches : Prestation sur site (2 jours) Checkup de votre IBM i avec votre équipe Fourniture d un rapport 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 en France : 24-27 mai 2011) Merci pour votre présence et votre participation 19