Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Bonnie K. Baker
Bonnie Baker Corporation
1-813-477-4885
www.bonniebaker.com
I Didn't Know DB2 Did THAT!
V9 & V10 Update CENTRAL CANADA DB2 USER GROUP
INTERNAL MYSTERIES SOLVED
2
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
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
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
Internal Mysteries Solved
LATCHES ON
EDMPOOL MRU/LRU CHAIN
BUFFERPOOL MRU/LRU CHAIN
BUFFERPOOL INDEX PAGES
BUFFERPOOL TABLE PAGES
6
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
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
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
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
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
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
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
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
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
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
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
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
19
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
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
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
SUMMARY
Internal Mysteries Solved
Optimizer Magic Explained
SQL Tricks/Oddities Shared
Program Logic Fun
23
Bonnie K. Baker Bonnie Baker Corporation
1-813-477-4885
[email protected] http://www.bonniebaker.com
THANK YOU