This course is designed to teach the students how to prevent SQL performance problems and how to improve the performance of existing SQL.
Hedefler:
- 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 
Topics:
- Introduction to SQL performance and tuning 
- Performance issues• Simple example 
- Visualizing the problem 
- SummaryPerformance analysis tools 
- Components of response time 
- Time estimates with VQUBE3 
- SQL EXPLAIN 
- The accounting trace 
- The bubble chart 
- Performance thresholdsIndex basics 
- Indexes• Index structure 
- Estimating index I/Os 
- Clustering index 
- Index page splitsAccess paths 
- Classification 
- Matching versus Screening 
- Variations 
- Hash access 
- Prefetch 
- CaveatMore on indexes 
- Include index 
- Index on expression 
- Random index 
- Partitioned and partitioning, NPSI and DPSI 
- Page range screening 
- Features and limitationsTuning methodology and index cost 
- Methodology 
- Index cost: Disk space 
- Index cost: Maintenance 
- Utilities and indexes 
- Modifying and creating indexes 
- Avoiding sortsIndex design 
- Approach 
- Designing indexesAdvanced access paths 
- Prefetch 
- List prefetch 
- Multiple index access 
- Runtime adaptive indexMultiple table access 
- Join methods 
- Join types 
- Designing indexes for joins 
- Predicting table orderSubqueries 
- Correlated subqueries 
- Non-correlated subqueries 
- ORDER BY and FETCH FIRST with subqueries 
- Global query optimization 
- Virtual tables 
- Explain for subqueriesSet operations (optional) 
- UNION, EXCEPT, and INTERSECT 
- Rules 
- More about the set operators 
- UNION ALL performance improvementsTable design (optional) 
- Number of tables 
- Clustering sequence 
- Denormalization 
- Materialized query tables (MQTs) 
- Temporal tables 
- Archive enabled tablesWorking with the optimizer 
- Indexable versus non-indexable predicates 
- Boolean versus non-Boolean predicates 
- Stage 1 versus stage 2 
- Filter factors 
- Helping the optimizer 
- PaginationLocking issues 
- The ACID test 
- Reasons for serialization 
- Serialization mechanisms 
- Transaction locking 
- Lock promotion, escalation, and avoidanceMore locking issues (optional) 
- Skip locked data 
- Currently committed data 
- Optimistic locking 
- Hot spots 
- Application design 
- Analyzing lock waitsMassive batch (optional) 
- Batch performance issues 
- Buffer pool operations 
- Improving performance 
- Benefit analysis 
- Massive deletes 






















