CV964G  Db2 12 for z/OS SQL Performance and Tuning

Duration:    3 Days

Level:          Intermediate

Audience:   Systems Administrator

Next Sessions
Start (YYYY-MM-DD) End (YYYY-MM-DD) Language Amount
2024-05-06 2024-05-08 English 2175 EUR 1587
2024-05-20 2024-05-22 English 2175 EUR 1601
2024-06-03 2024-06-05 English 2175 EUR 1615
2024-06-17 2024-06-19 English 2175 EUR 1629
2024-07-01 2024-07-03 English 2175 EUR 1643
2024-07-15 2024-07-17 English 2175 EUR 1657
2024-07-29 2024-07-31 English 2175 EUR 1671
2024-08-12 2024-08-14 English 2175 EUR 1685
2024-08-26 2024-08-28 English 2175 EUR 1699
2024-09-09 2024-09-11 English 2175 EUR 1713
2024-09-23 2024-09-25 English 2175 EUR 1727
2024-10-07 2024-10-09 English 2175 EUR 1741
2024-10-21 2024-10-23 English 2175 EUR 1755
2024-11-04 2024-11-06 English 2175 EUR 1769
2024-11-18 2024-11-20 English 2175 EUR 1783
2024-12-02 2024-12-04 English 2175 EUR 1797
2024-12-16 2024-12-18 English 2175 EUR 1811
Overview

This course is designed to teach the students how to prevent SQL performance problems and how to improve the performance of existing SQL.

Prerequisites
  • Familiarity with SQL
  • Familiarity with Db2 12 for z/OS
  • Familiarity with Db2 12 for z/OS application programming

After completing this course, students will be able to:

  • Understand and design better indexes
  • Determine how to work with the optimizer (avoid pitfalls, provide guidence)
  • Optimize multi-table access
  • Work with subqueries
  • Avoid locking problems
  • Use accounting traces and other tools to locate performance problems in existing SQL
  • and more

Introduction to SQL performance and tuning
   • Performance issues
   • Simple example
   • Visualizing the problem
   • Summary

Performance analysis tools
   • Components of response time
   • Time estimates with VQUBE3
   • SQL EXPLAIN
   • The accounting trace
   • The bubble chart
   • Performance thresholds

Index basics
   • Indexes
   • Index structure
   • Estimating index I/Os
   • Clustering index
   • Index page splits

Access paths
   • Classification
   • Matching versus Screening
   • Variations
   • Hash access
   • Prefetch
   • Caveat

More on indexes
   • Include index
   • Index on expression
   • Random index
   • Partitioned and partitioning, NPSI and DPSI
   • Page range screening
   • Features and limitations

Tuning methodology and index cost
   • Methodology
   • Index cost: Disk space
   • Index cost: Maintenance
   • Utilities and indexes
   • Modifying and creating indexes
   • Avoiding sorts

Index design
   • Approach
   • Designing indexes

Advanced access paths
   • Prefetch
   • List prefetch
   • Multiple index access
   • Runtime adaptive index

Multiple table access
   • Join methods
   • Join types
   • Designing indexes for joins
   • Predicting table order

Subqueries
   • Correlated subqueries
   • Non-correlated subqueries
   • ORDER BY and FETCH FIRST with subqueries
   • Global query optimization
   • Virtual tables
   • Explain for subqueries

Set operations (optional)
   • UNION, EXCEPT, and INTERSECT
   • Rules
   • More about the set operators
   • UNION ALL performance improvements

Table design (optional)
   • Number of tables
   • Clustering sequence
   • Denormalization
   • Materialized query tables (MQTs)
   • Temporal tables
   • Archive enabled tables

Working with the optimizer
   • Indexable versus non-indexable predicates
   • Boolean versus non-Boolean predicates
   • Stage 1 versus stage 2
   • Filter factors
   • Helping the optimizer
   • Pagination

Locking issues
   • The ACID test
   • Reasons for serialization
   • Serialization mechanisms
   • Transaction locking
   • Lock promotion, escalation, and avoidance

More locking issues (optional)
   • Skip locked data
   • Currently committed data
   • Optimistic locking
   • Hot spots
   • Application design
   • Analyzing lock waits

Massive batch (optional)
   • Batch performance issues
   • Buffer pool operations
   • Improving performance
   • Benefit analysis
   • Massive deletes