Oracle, optimisation d’applications, 5 jours

Présentation

Ce cours vous permettra d’améliorer les performances de vos bases de données Oracle.

Pour ce faire, il propose une analyse des mécanismes internes et des règles à utiliser dans la configuration des bases de données Oracle.

Il vous apporte tous les éléments nécessaires en vue d’en optimiser les performances en matière de stockage physique, de mémoire et d’entrées/sorties.

Il permet également de tirer profit des automatismes de tuning spécifiques à Oracle.

Objectifs pédagogiques  

  • Découvrir les outils et les techniques d’aide à l’optimisation des applications
  • Maitriser fonctionnement de l’optimiseur intégré d’Oracle
  • Optimiser le schéma relationnel et les requêtes SQL
  • Analyser et optimiser les performances des applications
  • Savoir exécuter des requêtes en parallèle

Pédagogie

Alternance d’exposés théoriques et d’exercices pratiques

Durée : 5 jours – 30 heures

Dates et prix : contact@fc3h.fr

Pré-réquis

  • Bonnes connaissances des langages SQL et PL/SQL.
  • Expérience requise sur l’utilisation du SGBD Oracle en environnement Windows ou Linux

Public concerné

Ce cours s’adresse aux développeurs et administrateurs d’applications.

PROGRAMME DE FORMATION

Introduction

  • La démarche d’optimisation
  • Gains qui peuvent être obtenus
  • Développement de l’application
  • Les exigences des utilisateurs
  • Détermination et contrôle des objectifs.

Particularités des applications

  • Les applications transactionnelles (OLTP) et les applications décisionnelles (OLAP)
  • Automatic Workload Repository et Automatic Database Diagnostic Monitor
  • DBMS_ADVISOR – SQLAccess Advisor – SQL Profile.
  • Exercice : Tuning d’un traitement batch.

Traitement des requêtes SQL

  • Mécanismes internes
  • Partage des curseurs
  • Variables de lien dans SQL*Plus et Enterprise Manager.
  • Partage des curseurs.
  • Fonctionnalité Adaptive Cursor Sharing.
  • Cache de résultat.

Les outils de diagnostic et mesure des performances

  • Les vues statistiques d’activité de la base
  • L’utilitaire STATPACK
  • La requête Explain
  • Collecte des statistiques avec le package DBMS_STATS
  • La trace du process serveur
  • Les outils : TKPROF, Trace Analyzer, le package DBMS_MONITOR
    • Exercice  : Utilisation de Tkprof dans différents contextes.

L’espace de stockage

  • Contrôle de l’organisation de la base
  • Répartition des objets
  • Les fichiers redo log
  • La taille des blocs par tablespaces
  • Tablespace Locally Managed
  • Gestion des disques en mode ASM
  • Utilisation du partitionnement
  • Segment Advisor.
    • Exercice : Réorganisation d’une base de données pour de bonnes performances.

Optimisation du stockage

  • Structures principales et chemins d’accès. Balayage complet de table.
  • Accélérer les requêtes. Index B*Tree et Bitmap.
  • Index composites et index invisibles.
  • Règles de gestion des index.
  • Tables globales temporaires.
  • Partitionnement des données
  • Vues matérialisées
  • Colonnes virtuelles.

Occupation des blocs de données

  • Le High Water Mark
  • Utilisation optimale de l’espace
  • Chaînage et migration des lignes
  • Réorganisation des données
    • Exercice : Utilisation de plusieurs free lists pour les tables.

Utilisation de la mémoire

  • Mémoire vice (RAM) et mémoire virtuelle
  • Tuning automatique de la SGA
  • Dimensionnement des PGAs
  • Le large pool
  • La Shared Pool Area
  • Dimensionnement du library cache
  • Réduction du nombre de parsings
  • Utilisation des traitements stockés
  • Le partage des curseurs
  • Le pool pour les objets volumineux
    • Exercice : Conservation en mémoire du code.

Les buffers caches

  • L’algorithme LRU
  • Conservation en cache des blocs
  • Mesure du hit ratio
  • Répartition des tables en pools
  • Répartition des tables par taille de blocs
  • Recherche du bon nombre de buffers
  • Evénements d’attente
  • Accélération des écritures
  • Les écritures asynchrones

Les undo segments

  • Nombre de segments en mode RBU
  • Trace des attentes
  • Utilisation optimale des segments
  • Utilisation des undo segments en mode SMU
  • Durée de conservation des images avant.
    • Exercice : Tuning des rollback segments

La journalisation

  • Réglage des checkpoints
  • Impact de l’archivage
  • Opérations NOLOGGING
  • Création des objets
  • Les latches sur le buffer redo log
  • Suppression des contentions.
    • Exercice : Tuning du buffer redo log.

Les tris

  • Opérations provoquant des tris
  • Eviter les tris
  • Trier en mémoire
  • Le tablespace temporaire
  • Utilisation de plusieurs tablespaces temporaires
  • Surveillance des tris.

Etude de l’optimiseur de requête

  • Choix de l’optimiseur
  • Méthodes de jointure
  • Génération de statistiques
  • Optimisation manuelle à l’aide des suggestions pour l’optimiseur
  • Optimisation PL/SQL : tableaux PL/SQL et récupération des lignes par lot : FORALL.

Parallélisation d’exécution des requêtes

  • Utilisation de plusieurs CPUs
  • Exécution des requêtes en parallèle
  • Degré de parallélisme optimal
  • Contrôle des opérations parallélisées.