I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... ·...

24
Bonnie K. Baker Bonnie Baker Corporation 1-813-477-4885 [email protected] www.bonniebaker.com I Didn't Know DB2 Did THAT! V9 & V10 Update CENTRAL CANADA DB2 USER GROUP

Transcript of I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... ·...

Page 1: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Bonnie K. Baker

Bonnie Baker Corporation

1-813-477-4885

[email protected]

www.bonniebaker.com

I Didn't Know DB2 Did THAT!

V9 & V10 Update CENTRAL CANADA DB2 USER GROUP

Page 2: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

INTERNAL MYSTERIES SOLVED

2

Page 3: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Internal Mysteries Solved DB2

PROGRAM PREPARATION

LATCHES & LATCH SUSPENSIONS X 3

EDMPOOL - 1

BUFFERPOOLS - 2

CLAIMS & DRAINS

GETPAGE VS. READ IO

DATA MANAGER vs. RDS

ORDER OF PREDICATE APPLICATION

DBD CHAINS

SIX LOCKS

RELEASE BIND PARAMETER

RANDOM INDEXES & SORT AVOIDANCE

AVOIDING YOUR OWN NEWLY INSERTED ROWS

3

Page 4: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

4

SELECT . . . INTO . . . . . .

Host Variables

SQLCA

MSTR DBM1 IRLM

LOG

LOCK?

EDMPOOL

PLAN PKG

SORTPOOL

RDS DATA MGR

GETPAGE

BUFFER MGR

LATCH?

WORKING STORAGE

DBDs DSC

RIDPOOL

BUFFERPOOL

?

Program

Execution SSAS DBAS LMAS

Directory Catalog Workspace

Tables Indexes

DSNDB01 DSNDB06 DSNDB07

Page 5: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

5

PROGRAM PREPARATION PROCESS

SOURCE CODE INCLUDE

LIBRARY

MODIFIED

SOURCE CODE SQL IN DBRM

in LIBRARY

LOAD MODULE

IN LOADLIB

DIRECTORY

PACKAGE

CATALOG

DBRM

PRECOMPILE

COMPILE

LINK

BIND PACKAGE

REBIND PACKAGE

Page 6: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Internal Mysteries Solved

LATCHES ON

EDMPOOL MRU/LRU CHAIN

BUFFERPOOL MRU/LRU CHAIN

BUFFERPOOL INDEX PAGES

BUFFERPOOL TABLE PAGES

6

Page 7: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Internal Mysteries Solved

EDMPOOL

PLANS

PACKAGES

PACKAGE SEGMENTS: BASE +

SPACE MANAGEMENT TECHNIQUE

MRU/LRU CHAIN

NON-STEALABLE STEALABLE (MRU/LRU) FREE

BASE

PKGA BASE

PKG3

BOB’S SUE’S PKGA JOE’S

SEG7 SEG7 SEG7 SEG7

7

Page 8: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Internal Mysteries Solved

BUFFERPOOL

MRU/LRU CHAIN

BUT - TWO SPACE MANAGEMENT TECHNIQUES

MRU/LRU WITH LATCHES

PGSTEAL (FIFO) WITHOUT LATCHES?

NON-STEALABLE STEALABLE FREE

WHEN IS FIFO APPROPRIATE?

8

Page 9: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Internal Mysteries Solved

BUFFERPOOL

INDEX PAGE & TABLE PAGE LATCHES

S OR X

WHY LATCH?

WITH UR? OK TO READ DURING UPDATE?

WITH CS?

ENSURES STABLE (NOT CLEAN) DATA

ALLOWS READ OF PAGES WITH X LOCKS

DURATION? Acquired? Released?

9

Page 10: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Internal Mysteries Solved

BUFFERPOOL MANAGER ALSO

WORKS WITH VSAM FOR READ IO

ALSO

HANDLES CLAIMS & DRAINS

CLAIM COUNTERS FOR SQL

READ COUNTER

WRITE COUNTER

DRAIN NEGOTIATION BY UTILITIES

10

Page 11: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Internal Mysteries Solved

DATA MANAGER

GETPAGE requests

MRU/LRU Latch included in cost

Page addressing

BP is addressable working storage

Update Before & After comparisons

New V10 relief with Indicators

Accesses DBD for “cheat sheet” information

What is a DBD?

11

Page 12: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Internal Mysteries Solved

DATA MANAGER - continued

Stage 1 Predicates

Applied by the Data Manager

Indexable (Matching & Screening)

Not Indexable

RDS

Stage 2 Predicates

Done by RDS, not Data Manager

Indexable (V10 Screening)

Not Indexable

12

Page 13: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

13

ORDER OF PREDICATE APPLICATION V9 & PRIOR

1. STAGE 1 INDEX-MATCHING PREDICATES

2. STAGE 1 INDEX-SCREENING PREDICATES

3. STAGE 1 OTHER PREDICATES APPLIED TO TABLE EQUAL PREDICATES

RANGE PREDICATES,

IS NULL, IS NOT NULL

IN, LIKE PREDICATES

EACH GROUP IN ORDER CODED

4. STAGE 2 PREDICATES APPLIED TO TABLE

ASSUME AN INDEX ON LASTNAME, FIRSTNAME, MIDDLE_INIT, EMPID, MGRID

WHERE

7 SAL + COM > 50000.00

2 AND FIRSTNAME = ‘ELIZABETH’

3 AND MIDDLE_INIT = ‘K’

1 AND LASTNAME = ‘BAKER’

4 AND HAIR_COLOR = ‘BROWN’

6 AND SALARY > = 50000.00

5 AND EYE_COLOR = ‘BLUE’

8 AND EMPID || MGRID = :HV1 || :HV2

applied in the order of the index columns

Page 14: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

14

ORDER OF PREDICATE EVALUATION IN V10 STAGE 1 INDEX-MATCHING PREDICATES

STAGE 1 INDEX-SCREENING PREDICATES

STAGE 2 INDEX-SCREENING PREDICATES

STAGE 1 OTHER PREDICATES APPLIED TO TABLE EQUAL PREDICATES

RANGE PREDICATES,

IS NULL, IS NOT NULL

IN, LIKE PREDICATES

EACH GROUP IN ORDER CODED

STAGE 2 PREDICATES APPLIED TO TABLE

ASSUME AN INDEX ON LASTNAME, FIRSTNAME, MIDDLE_INIT, EMPID, MGRID

WHERE

8 SAL + COM > 50000.00

2 AND FIRSTNAME = ‘ELIZABETH’

3 AND MIDDLE_INIT = ‘K’

1 AND LASTNAME = ‘BAKER’

5 AND HAIR_COLOR = ‘BROWN’

7 AND SALARY > = 50000.00

6 AND EYE_COLOR = ‘BLUE’

4 AND EMPID || MGRID = :HV1 || :HV2

applied in the order of the index columns

Page 15: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Internal Mysteries Solved

DATA MANAGER - continued

LOCK REQUESTS

CROSS-MEMORY SERVICES CALLS TO IRLM

CALLS AT ACQUISITION & RELEASE)

RELEASE WHEN?

IS OR IX?

IS OR IX?

S? S? S? S?

U? U? U? U?

X? X? X? X?

15

Page 16: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Internal Mysteries Solved

DATA MANAGER - continued

DB2 RI ENFORCEMENT

CHOOSES ACCESS PATHS AT RUNTIME

USES DBD INFORMATION

DECLARED TEMP TABLE ACCESS

GATHERS STATISTICS

DETERMINES ACCESS PATHS AT RUNTIME

16

Page 17: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Optimizer Magic Explained

SIX LOCKs

Huge maintenance program

Only program allowed to do maintenance

Others can read WITH UR or

IS on TSP

IS on TBL

S (or no lock) on PAGE

17

Page 18: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Optimizer Magic Explained

SIX LOCKs continued

MAINTENANCE PROGRAM:

LOCK TABLE T1 in SHARE MODE

1st read gets IS on TSP + S on TBL

1st UPDATE

gets X on page

upgrades S on TBL to SIX

upgrades IS on TSP to IX

18

Page 19: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

19

Page 20: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

20

Program Logic Fun

TABLESPACE, PARTITION, & TABLE LOCKS

+ Release COMMIT/DEALLOCATE

What happens at COMMIT ?

IF LOCK TABLE STATEMENT?

+

If RELEASE(COMMIT)?

If RELEASE(DEALLOCATE)?

New with Java in V10

RELEASE DEALLOCATE

20

Page 21: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

SQL Tricks Shared

GROUP BY + ORDER BY? Both needed?

If on different columns? Of course

But what if same columns?

GROUP BY WKDEPT

ORDER BY WKDEPT

Multiple indexes on same columns?

With different asc/desc options

Impact of New RANDOM Index option

21

Page 22: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Program Logic Fun

Avoiding your own newly Inserted rows

Force Sort?

Declared/Created Temp Table?

Sensitive Static Scroll Cursor?

Insensitive Static Scroll Cursor?

Better Solution?

Disqualify your new rows in your cursor WHERE clause

22

Page 23: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

SUMMARY

Internal Mysteries Solved

Optimizer Magic Explained

SQL Tricks/Oddities Shared

Program Logic Fun

23

Page 24: I Didn't Know DB2 Did THAT! V9 & V10 Updatehome.ca.inter.net/~ccdb2/Downloads/BonnieBaker-I... · 1. stage 1 index-matching predicates 2. stage 1 index-screening predicates 3. stage

Bonnie K. Baker Bonnie Baker Corporation

1-813-477-4885

[email protected] http://www.bonniebaker.com

THANK YOU