DB2 10 for z/OS Application Performance and Tuning (CV962)

Request a Quote for this class

About this Course

This course is designed to teach you how to prevent application performance problems and to improve the performance of existing applications.

Audience Profile

This advanced course is for DB2 for z/OS application developers, DB2 for z/OS DBAs and anyone else with a responsibility for application performance and tuning in a DB2 for z/OS environment.

At Course Completion

Upon completing this course, students will be able to:

  • Design better indexes
  • Determine how to live with the optimizer (avoid pitfalls, help when necessary)
  • Avoid locking problems
  • Use accounting traces to find significant performance problems in an operational application

Prerequisites

You should have:

  • Familiarity with DB2 for z/OS application programming

Course Outline

1. Introduction to Application Performance and Tuning

  • Why Performance Disappoints
  • Causes of Performance Problems
  • A Simple Example
  • SQL EXPLAIN Information
  • Modify the Index
  • The Accounting Trace
  • Accounting Trace Information
  • Filter Factors
  • Another Index Modification
  • Who Detects Problems?
  • When Should Problems be Detected?
  • VQUBE2
  • What is a Touch?
  • Further Analysis (1 of 2)
  • Further Analysis (2 of 2)
  • The Message

2. Performance Analysis Tools

  • Components of Response Time
  • Methodology Formulas
  • VQUBE2
  • Simple Example in VQUBE2
  • SQL EXPLAIN
  • The Plan Table
  • Running the Explain
  • Interpreting the Results
  • The Accounting Trace
  • Reading an Accounting Trace
  • The Bubble Chart
  • Monitoring Execution
  • Performance Thresholds
  • Tuning Potential

3. Towards Better Indexes

  • Section 3.1 DB2 Index Structure and Usage, Part 1
  • Section 3.2 DB2 Index Structure and Usage, Part 2
  • Section 3.3 Tuning Methodology and Index Cost
  • Section 3.4 Lab 1: Customer Order Application
  • Section 3.5 Index Design
  • Section 3.6 Lab 2: Poorly Performing Application

4. ** Machine Exercise 1 - Designing Indexes **

  • Section 3.7 Advanced Access Paths

5. Multiple Table Access

  • Section 4.1 Joining Issues
  • Section 4.2 Lab 3: Joining Tables
  • Section 4.3 Subqueries and Global Query Optimization
  • Section 4.4 Lab 4: Different Implementations of One Problem
  • Section 4.5 Union, Except, and Intersect

6. ** Machine Exercise 2 - Subqueries **

7. Towards Better Tables

  • Section 5.1 Table Design
  • Section 5.2 Materialized Query Tables
  • Section 5.3 Temporal Tables

8. ** Machine Exercise 3 - MQTs and Denormalized Tables **

9. Learning to Live with the Optimizer

  • Section 6.1 Dangerous Predicates

10. ** Machine Exercise 4 - NonIndexable and NonBoolean Predicates **

  • Section 6.2 Lab 5: Introduction to Browsing
  • Section 6.3 Filter Factors
  • Section 6.4 Helping the Optimizer

11. ** Machine Exercise 5 - Helping the Optimizer **

12. Massive Batch

  • Section 7.1 Batch Performance Issues
  • Section 7.2 Benefit Analysis
  • Section 7.3 Massive Delete

13. Locking Issues

  • Section 8.1 Serialization
  • Section 8.2 Transaction Locking
  • Section 8.3 Application Design

14. ** Machine Exercise 6 - Locking Issues **

15. Course Summary

16. Components of CPU Time