Db2 for z/OS SQL performance

La qualité et l'efficacité sont les principales préoccupations des développeurs d'applications, donc aussi en matière d'accès aux données. Après avoir suivi ce cours, les participants sauront comment l'optimiseur de Db2 traite les requêtes SQL et les implémente de façon optimale; et comment on peut souvent améliorer la performance des requêtes.

L'accent est mis sur l'optimisation des requêtes et sur le fait de permettre un bon accès concurrent. Seront également traités, les aspects de design logique et physique et comment l'optimiseur utilise les informations statistiques dans le "catalog" de Db2 pour prendre de bonnes décisions. Pendant les séances pratiques, les participants auront la possibilité de pratiquer toutes les techniques traitées.

Calendrier

dateduréelang.lieuprix 
05 juin3Leuven 1875 EUR (excl. TVA)
05 juin3web based 1875 EUR (excl. TVA)
INFO SESSION ET INSCRIPTION

Participants

Développeurs d'applications, analystes programmeurs et administrateurs de bases de données qui prennent part à l'optimisation en Db2. Le cours convient également aux personnes chargées de l'optimisation des requêtes "ad hoc" dans un infocentre, ou des requêtes utilisées dans le contexte d'un Data Warehouse.

Connaissances préalables

Connaître Db2 (cf. cours Db2 for z/OS: cours de base) et SQL (cf. cours SQL et RDBMS: cours de base et SQL workshop).

Contenu

  • Stratégie: les phases, les choses à entreprendre et les informations requises
  • Design logique et physique: normalisation et dénormalisation • implémentation optimale des tablespaces, indexes et tables
  • Le catalog Db2: contenu • signification et utilisation de l'information • mise à jour au moyen de RUNSTATS ou de l'SQL • Simulation de l'environnement de production dans un environnement de test • types d'information statistique, profiles runstats, et feedback de l'optimiseur
  • Les chemins d'accès en Db2: tablespace scan • utilisation d'index matching et non-matching • index-only • list prefetch • accès direct par RowID • accès hash
  • Relations entre les requêtes SQL et les chemins d'accès: stage-1 et stage-2 • utilisation d'indexes multiples • requêtes corrélées et non-corrélées • les méthodes de jointure • influence des clauses ORDER BY, OPTIMIZE FOR et FETCH FIRST • vues et CTEs • matérialisation (fichiers de travail)
  • La fonction EXPLAIN: exercices de lecture et interprétation des chemins d'accès, pour l'SQL statique mais également pour l'SQL dans le Dynamic Statement Cache (DSC), avec et sans Visual Explain
  • Optimisation des requêtes: que savons-nous de l'optimiseur? • Comment utiliser ces informations? • Comment convertir un prédicat stage-2 en un prédicat stage-1 indexable? • Quels facteurs de filtrage sont considérés par l'optimiseur? • Sont-ils réalistes? • Quelles sont les alternatives optimales pour les jointures, les sous-requêtes corrélées ou non? • Comment choisir le bon index? • Comment influencer l'optimiseur dans ses choix? • case studies
  • Utiliser une ou plusieures tables dans les recherches de performance: PLAN_TABLE, DSN_STATEMNT_TABLE, DSN_DETCOST_TABLE, DSN_FILTER_TABLE, et DSN_PREDICAT_TABLE
  • L'usage des "hints" (nouveau style) pour influencer l'optimiseur • predicate selectivity
  • L'usage des possibilités des "indexes virtuels" pour établir une analyse "what if"
  • Accès concurrent: choisir les paramètres Db2, stratégies et niveaux en matière de blocage (locking)

Pédagogie

Exposés théoriques et travaux pratiques.

Durée

3 jours.

Formateur

Peter Vanroose.


INFO SESSION ET INSCRIPTION