Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for...

59
Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews Themis Inc.

Transcript of Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for...

Page 1: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Advanced Query Tuning With IBM Data Studio for Developers

Tony AndrewsThemis Inc.

Page 2: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

ObjectivesBy the end of this presentation, you should:

• Know how to use Data Studio to help improve query performance.

• Know the different access paths and understand how they are presented

• Understand filter factors• Better understand how the DB2 optimizer determines

access paths• Better understand how to use and navigate Data Studio for

SQL tuning

Page 3: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Improving SQL Performance

• System Tuning

• Change the SQL

• Gather / Alter Statistics

• Change Physical Design

Page 4: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Developers Should Focus On • Appropriate use of indexes• Predicate Types• Access Path Choice• Filter Factors• Known Statistics • Clustering order • Knowing ‘why’ any table space scan• Stage 1 Predicates / Stage 2 / Residual• Minimal Sorts• Possible Rewrites

Page 5: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Catalog StatisticsObject Definitions

Access Path

Access Path Hint

Rid Pools, Sort PoolsCPU Speed, # CPUs

Optimizer

Page 6: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

ExplainO

ptimizer

EXPLAIN PLAN SET QUERYNO = 10 FORSELECT LASTNAME,SALARY

FROM EMPWHERE EMPNO BETWEEN '000000' AND '099999'

AND SALARY < 40000

OR

z/OS PLAN_TABLEDSN_STATEMNT_TABLEDSN_FUNCTION_TABLE& a bunch of “other” tables

BIND PACKAGE with optionEXPLAIN(YES)

LUWEXPLAIN_STATEMENTEXPLAIN_PREDICATE

& a bunch of “other” tables

Page 7: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

IBM Data Studio

Click to Close

‘X’ Out to Close

Page 8: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

IBM Data Studio

Page 9: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Create a Project

When Creating a Project

1) Assign a Project Name and Type(Data Devlp Project

1) Assign a Subsystem2) Assign a Default

Schema

Page 10: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Data Studio Project Created

Page 11: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Data Studio Explaining QueriesOpen

VisualExplainSelect

SubsystemConnection

Maximize Visual

Explain

Page 12: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

z/OS Data Studio Access Path Graphs

Page 13: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

LUW Data Studio Access Path Graphs

Page 14: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Data Studio Access Path Graphs

Sources of Data

Page 15: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Data Studio Access Path Graphs

Page 16: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Data Studio Access Path Graphs

Data RetrievalOperations

Page 17: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

z/OS Stage 1 / 2 Predicates

Page 18: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Data Studio Access Path Graphs

Page 19: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Data Studio Access Path Graphs

Page 20: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

PLANNO

METHOD TNAME ACCESSTYPE

MATCHCOLS

ACCESSNAME

INDEXONLY

PREFETCH

1 0 EMP R 0 N S

SELECT EMPNO, LASTNAME, SALARYFROM EMP WHERE EMPNO BETWEEN ‘000000’ AND ‘099999’AND SALARY < 40000

Tablespace Scan

Plan Table

Data StudioEstimated number of rows

Page 21: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

SELECT * FROM EMP WHERE LASTNAME = ‘Coldsmith’AND FIRSTNME = ‘Nichelle’;

z/OS Index Scan - Matching

XEMP032IEMP01

PREFETCHINDEXONLY

ACCESSNAME

MATCHCOLS

ACCESSTYPE

TNAMEMETHODPLANNO

N

PLAN_TABLE

Page 22: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

NXEMP031IEMP01

PREFETCHINDEXONLY

ACCESSNAME

MATCHCOLS

ACCESSTYPE

TNAMEMETHODPLANNO

SELECT * FROM EMPWHERE LASTNAME = ‘Coldsmith’

AND MIDINIT = ‘R’;

INDEX XEMP03 on(LASTNAME, FIRSTNME, MIDINIT)

Index Screening Predicate

z/OS Index Screening

PLAN_TABLE

Page 23: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

z/OS Index Screening (cont)

Page 24: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

SELECT * FROM EMP WHERE EMPNO BETWEEN ‘000000’ and ‘099999’

LUW Index Scan - Matching (Start/Stop Keys)

Page 25: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

z/OS Index Scan - Nonmatching

NXEMP030IEMP01

PREFETCHINDEXONLY

ACCESSNAME

MATCHCOLS

ACCESSTYPE

TNAMEMETHODPLANNO

PLAN_TABLE

SELECT * FROM EMP WHERE FIRSTNME = ‘Michelle’

AND MIDINIT = ‘R’;

Page 26: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

SELECT * FROM EMP WHERE FIRSTNME = ‘Michelle’AND MIDINIT = ‘R’;

z/OS Index Scan - Nonmatching

Page 27: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

SELECT LASTNAME* FROM EMP WHERE FIRSTNME = ‘David’ and MIDINIT = ‘A’

LUW Index Scan – Non Matching (Sargeable)

Page 28: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Index Only Access

SELECT LASTNAME, FIRSTNME, MIDINITFROM EMPWHERE LASTNAME LIKE 'Jo%'

Page 29: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

z/OS Nested Loop Join

Page 30: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Nested Loop JoinLUW Nested Loop Join

Page 31: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

z/OS Merge Scan Join

Page 32: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

z/OS Hybrid Join

SELECT LASTNAME, PROJNOFROM EMP E JOIN EMPPROJACT EPAON E.EMPNO = EPA.EMPNOWHERE E.JOB = ‘FIELDREP’

Page 33: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Which Join Method

1) Depends on the predicates2) How much filtering on the tables3) Possible indexes4) Optimization level 5) Clustering of table data

Page 34: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Sort Activities

ORDER BY

GROUP BY

DISTINCT

UNION

Subqueries

JOIN

Data Sorts

List Prefetch

Multiple Index Access

Hybrid Join

RID Sorts

Page 35: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

z/OS Data Sorts via Data Studio

Page 36: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

LUW Data Sorts via Data Studio

Page 37: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title stylePredicate Generation Through Transitive Closure

If A must equal B

And A must be RED,

Then B must also be RED.

The Premise

Page 38: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Predicate Generation Through Transitive Closure Cont’d

Index XDEPT1 on DEPTNOIndex XDEPT3 on ADMRDEPT

Single Table DB2 Generated Predicate

SELECT . . . .FROM DEPTWHERE DEPTNO = ADMRDEPTAND ADMRDEPT = ‘A00’ ;

SELECT . . . .FROM DEPTWHERE DEPTNO = ADMRDEPTAND ADMRDEPT = ‘A00’ AND DEPTNO = ‘A00’ ;

XDEPT1 index chosen !

Page 39: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title stylePredicate Transitive Closure

SELECT . . . .FROM DEPTWHERE DEPTNO = ADMRDEPTAND ADMRDEPT = ‘A00’ ;

Note: Index on DEPTNO chosen

Page 40: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Predicate Transitive Closure

z/OS:

Transitive closure takes place for all predicates other than LIKE (as of V10)

LUW

Transitive closure only takes place for EQUAL predicates. Developers should code for RANGE, LIKE, IN, BETWEEN, …)

Page 41: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title styleLUW Predicate Transitive Closure

Page 42: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Tuning a Query

Tune a Query

Page 43: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Tuning a Query

Page 44: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title styleTuning a Query Output

All the output from ‘Tune a Query’. Note some are not available

in free version.

Page 45: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title styleStatistics Advisor

Click on this line to expand statistics recommendations

Opens Advisor details tab to view information

Page 46: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title styleStatistics Advisor Summary Report

Page 47: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

z/OS Tune a query – Query Transformation

Page 48: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

z/OSTune a query – Query Transformation

Note: Non Correlated

Note: Correlated

Page 49: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Saving off an Access Path

Page 50: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Opening an Access Path

Page 51: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Retrieving Queries From Packages

Create a filter for specific packages

Page 52: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Retrieving Queries From Packages

Page 53: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Retrieving Queries From Packages

Run advisors on current package or re-explain

Page 54: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Retrieving Queries From Statement Cache

Create a Filter for Queries

Page 55: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Retrieving Queries From Statement Cache

Page 56: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title styleEveryone’s Most Favorite Option

Page 57: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Preference Settings

Windows>Preferences

Page 58: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Query Tuning Documents

Search on:

Tuning SQL With Optim Query Tuner

Part 1 and Part 2

Page 59: Advanced Query Tuning CODUG Presentation.ppt Query...Advanced Query Tuning With IBM Data Studio for Developers Tony Andrews ... Tuning SQL With Optim Query Tuner Part 1 and Part 2.

Click to edit Master title style

Thank You for Attending CODUG!“There is always time for an Explain”

“I have noticed that when the developers geteducated, good SQL programming standards are in

place, program walkthroughs and Explains are executed correctly, incident reporting stays low,

CPU costs do not get out of control, and most performance issues are found before promoting

code to production.”