Interested in bringing a class to you? Onsite training
Overview
| Course code | CV960 | Skill level | Advanced |
|---|---|---|---|
| Duration | 5.0 days | Delivery type | Classroom
(Hands-on labs) |
| Course type | Public or Private on-site | ||
| Public price | USD $3,250.00 plus tax | ||
This course is designed to teach the you how to prevent application performance problems and to improve the performance of existing applications.
View this course in other countries
Training Paths that reference this course are:
Audience
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.
Skills taught
- 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
Course outline
Application performance issues and management methods
- Describe common DB2 application performance problems
- Evaluate different approaches for detecting the problems
- Describe different solutions
Towards better indexes
- Detect inadequate indexing with VQUBE as soon as program specifications are completed
- Design the best possible index for a single-table SELECT
- Evaluate the cost of an index
Towards better tables
- Evaluate clustering alternatives
- Consider the tradeoffs in two kinds of denormalization
- Describe why tables for optional attributes are often not good for performance
Learning to live with optimizer
- Describe the limitations related to dangerous predicates
- Identify situations when the optimizer needs help with filter factor estimates
- Avoid the pitfalls with joins, subqueries, unions, except, and intersect
Unpredictable transactions
- Design good cursors and indexes for a transaction with optional input fields
- Describe the problems the index designer and the optimizer face with star joins
- Describe MQTs and situations where they might improve application performance
Massive batch
- Detect early the eventual performance problems with massive batch jobs
- Make batch jobs run faster
CPU time estimates
- Predict CPU time with a rough formula
Avoiding locking problems
- Avoid lock durations that are too long or locks that are too strong
- Prevent wrong results caused by lock durations that are too short or locks that are too weak
Monitoring application performance
- Describe access path stability
- Identify how traces work
- Define what an accounting trace is
- List the most important counters in an accounting trace
- Compare VQUBE and accounting traces
- Analyze an accounting trace
- Describe the most useful accounting reports
Agenda
Day 1
- Welcome
- Application performance issues and management methods
- DB2 index structure and basic access paths
- Index design - part one
Day 2
- Index design - part one (continued)
- Lab 1 (Improve indexes for customer / order application)
- Lab 1 review
- Index design - part two
- Machine exercise 1
- Machine exercise 1 review
- Index design - part two (continued)
- Lab 2 (Poorly performing application already in production)
- Lab 2 review
- Advanced access paths
Day 3
- Lab 3 (Multiple index access)
- Lab 3 review
- Towards better tables
- Dangerous predicates
- Machine exercise 2
- Machine exercise 2 review
- Dangerous predicates (continued)
- Lab 4 (Browsing application)
- Lab 4 review
- Optimizer and filter factors
- Machine exercise 3
- Machine exercise 3 review
- Join issues
Day 4
- Join issues (continued)
- Lab 5 (Joins)
- Lab 5 review
- Subquery issues
- Lab 6 (Different implementations of the same transaction)
- Lab 6 review
- UNION, EXCEPT, and INTERSECT
- Lab 7 (Union)
- Lab 7 review
- Machine exercise 4
- Machine exercise 4 review
- Unpredictable transactions and MQTs
- Machine exercise 5
- Machine exercise 5 review
- Massive batch
- Lab 8 (Improve batch performance)
Day 5
- Lab 8 Review
- Massive delete
- CPU time estimates
- Avoiding locking problems
- Monitoring application performance
