© 2009 IBM Corporation The future runs on System z 2010 DB2 9 Optimizer Jeff Freschl, IBM Silicon Valley Lab.

Slides:



Advertisements
Similar presentations
Tuning: overview Rewrite SQL (Leccotech)Leccotech Create Index Redefine Main memory structures (SGA in Oracle) Change the Block Size Materialized Views,
Advertisements

1 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
© IBM Corporation Informix Chat with the Labs John F. Miller III Unlocking the Mysteries Behind Update Statistics STSM.
Database Management Systems, R. Ramakrishnan and Johannes Gehrke1 Evaluation of Relational Operations: Other Techniques Chapter 12, Part B.
Dos and don’ts of Columnstore indexes The basis of xVelocity in-memory technology What’s it all about The compression methods (RLE / Dictionary encoding)
IBM Software Group ® Recommending Materialized Views and Indexes with the IBM DB2 Design Advisor (Automating Physical Database Design) Jarek Gryz.
1 Chapter 10 Query Processing: The Basics. 2 External Sorting Sorting is used in implementing many relational operations Problem: –Relations are typically.
Introduction to Structured Query Language (SQL)
1 Evaluation of Relational Operations: Other Techniques Chapter 12, Part B.
1 Query Processing: The Basics Chapter Topics How does DBMS compute the result of a SQL queries? The most often executed operations: –Sort –Projection,
1.1 CAS CS 460/660 Introduction to Database Systems File Organization Slides from UC Berkeley.
Introduction to Structured Query Language (SQL)
A Guide to SQL, Seventh Edition. Objectives Understand, create, and drop views Recognize the benefits of using views Grant and revoke user’s database.
Layers of a DBMS Query optimization Execution engine Files and access methods Buffer management Disk space management Query Processor Query execution plan.
© 2009 IBM Corporation Ian Shave IBM Systems and Technology Group A New Era in Midrange Storage.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Overview of Storage and Indexing Chapter 8.
® IBM Software Group © 2012 IBM Corporation OPTIM Data Studio – Jon Sayles, IBM/Rational November, 2012.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Database Performance Tuning and Query Optimization.
IT The Relational DBMS Section 06. Relational Database Theory Physical Database Design.
1 Physical Data Organization and Indexing Lecture 14.
Static SQL and Access Path Review Tips and Tricks Paul Walters Sallie Mae Inc. Session Code: E05 May 12, :30 a.m. –
Conditions and Terms of Use
DAY 14: ACCESS CHAPTER 1 Tazin Afrin October 03,
Physical Database Design & Performance. Optimizing for Query Performance For DBs with high retrieval traffic as compared to maintenance traffic, optimizing.
DB2 for z/OS Query Optimization  IBM Corporation  IBM Corporation 2003 Tampa Bay Relational Users Group IBM Silicon Valley Lab, U.S.A.
©Silberschatz, Korth and Sudarshan13.1Database System Concepts Chapter 13: Query Processing Overview Measures of Query Cost Selection Operation Sorting.
Module 5 Planning for SQL Server® 2008 R2 Indexing.
IBM ISPF Productivity Tool © 2008 IBM Corporation IBM ISPF Productivity Tool for z/OS V 5.10 More Than Just ISPF.
DBMS Implementation Chapter 6.4 V3.0 Napier University Dr Gordon Russell.
7 1 Chapter 7 Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
DB2. 2 Copyright © 2005, Infosys Technologies Ltd ER/CORP/CRS/DB01/003 Version No:2.0a Session Plan Introduction to Concurrency Control Different types.
Storage and Indexing1 Overview of Storage and Indexing.
DB2 10 Hash Access: Access Path or Collision Course? Donna Di Carlo BMC Software Session Code: A13 Wednesday, 16 November 2011 | Platform: DB2 for z/OS.
Database structure and space Management. Database Structure An ORACLE database has both a physical and logical structure. By separating physical and logical.
1 Chapter 10 Joins and Subqueries. 2 Joins & Subqueries Joins – Methods to combine data from multiple tables – Optimizer information can be limited based.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Overview of Storage and Indexing Chapter 8.
1 Overview of Storage and Indexing Chapter 8. 2 Data on External Storage  Disks: Can retrieve random page at fixed cost  But reading several consecutive.
© IBM Corporation 2005 Informix User Forum 2005 John F. Miller III Explaining SQLEXPLAIN ®
Physical Database Design Purpose- translate the logical description of data into the technical specifications for storing and retrieving data Goal - create.
Chapter 5 : Integrity And Security  Domain Constraints  Referential Integrity  Security  Triggers  Authorization  Authorization in SQL  Views 
Chapter 5 Index and Clustering
CPSC 404, Laks V.S. Lakshmanan1 Overview of Query Evaluation Chapter 12 Ramakrishnan & Gehrke (Sections )
Session 1 Module 1: Introduction to Data Integrity
© 2003 Computer Associates International, Inc. (CA). All trademarks, trade names, services marks and logos referenced herein belong to their respective.
1 Chapter 9 Tuning Table Access. 2 Overview Improve performance of access to single table Explain access methods – Full Table Scan – Index – Partition-level.
Query Processing – Implementing Set Operations and Joins Chap. 19.
CS4432: Database Systems II
1 Overview of Query Evaluation Chapter Outline  Query Optimization Overview  Algorithm for Relational Operations.
8 Copyright © 2005, Oracle. All rights reserved. Gathering Statistics.
Chapter 10 The Basics of Query Processing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved External Sorting Sorting is used in implementing.
© 2013 IBM Corporation IBM UrbanCode Deploy v6.0.1 Support Enablement Training Source Configuration and Database Upgrades Michael Malinowski
IBM Innovate 2012 Title Presenter’s Name Presenter’s Title, Organization Presenter’s Address Session Track Number (if applicable)
Data Integrity & Indexes / Session 1/ 1 of 37 Session 1 Module 1: Introduction to Data Integrity Module 2: Introduction to Indexes.
CS222: Principles of Data Management Lecture #4 Catalogs, Buffer Manager, File Organizations Instructor: Chen Li.
Module 11: File Structure
Record Storage, File Organization, and Indexes
Database Management System
COMP 430 Intro. to Database Systems
Chapter 12: Query Processing
Database Performance Tuning and Query Optimization
Lecture 12 Lecture 12: Indexing.
Recommending Materialized Views and Indexes with the IBM DB2 Design Advisor (Automating Physical Database Design) Jarek Gryz.
Implementation of Relational Operations
Chapter 11 Database Performance Tuning and Query Optimization
External Sorting Sorting is used in implementing many relational operations Problem: Relations are typically large, do not fit in main memory So cannot.
Presentation transcript:

© 2009 IBM Corporation The future runs on System z 2010 DB2 9 Optimizer Jeff Freschl, IBM Silicon Valley Lab

© 2009 IBM Corporation 2 © Copyright IBM Corporation [current year]. All rights reserved. U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN ADDITION, THIS INFORMATION IS BASED ON IBM’S CURRENT PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM WITHOUT NOTICE. IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, NOR SHALL HAVE THE EFFECT OF, CREATING ANY WARRANTIES OR REPRESENTATIONS FROM IBM (OR ITS SUPPLIERS OR LICENSORS), OR ALTERING THE TERMS AND CONDITIONS OF ANY AGREEMENT OR LICENSE GOVERNING THE USE OF IBM PRODUCTS AND/OR SOFTWARE. IBM, the IBM logo, ibm.com, DB2 are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at Other company, product, or service names may be trademarks or service marks of others. Disclaimer

© 2009 IBM Corporation 3 Agenda Service Updates Plan Stability General Query Performance Enhancements Indexing Enhancements Histogram Statistics Global Query Optimization Generalized sparse index and in-memory data cache Dynamic Index ANDing REOPT AUTO

© 2009 IBM Corporation 4 Service updates

© 2009 IBM Corporation 5 Prune “Always False” Predicates APAR PK49265 (ZPARM PREDPRUNE) Literal “IN” or “=“ only (no host vars or REOPT) –Becomes…. –Original “OR” is stage 2 Disables index access and many query transformations –Documented tricks are NOT pruned (OR 0=1) WHERE ('A' = 'B' OR T1.COL1 IN ('B', 'C')) WHERE T1.COL1 IN ('B', 'C')

© 2009 IBM Corporation 6 Index-only Preference Ever created an index to support index-only? –Only to have optimizer choose index + data? –APAR PK51734 ZPARM OPTIXOPREF –Optimizer will prioritize index-only over index + data given same index prefix SELECT C2 FROM T1 WHERE C1 = ? Index 1 (C1) Index 2 (C1, C2)  Index + data  Index-only

© 2009 IBM Corporation 7 Full index matching preference Optimizer already preferences 1 row index –Full equals match on a unique index APAR PK59731 –When FETCH FIRST 1 ROW ONLY is specified Will choose index with matching on all predicates WHERE C1 = ? AND C2 = ? AND C3 > ? FETCH FIRST 1 ROW ONLY Index 1 (C1, C2, C3)  Preference this over other indexes

© 2009 IBM Corporation 8 Plan Stability

© 2009 IBM Corporation 9 Plan Stability Overview Ability to backup your static SQL packages At REBIND –Save old copies of packages in Catalog/Directory –Switch back to previous or original version Two flavors –BASIC 2 copies: Current and Previous –EXTENDED 3 copies: Current, Previous, Original –Default controlled by a ZPARM –Also supported as REBIND options

© 2009 IBM Corporation10 Plan Stability - BASIC support Current copyprevious copyIncoming copy REBIND … PLANMGMT(BASIC)REBIND … SWITCH(PREVIOUS) current copyprevious copy move delete move Chart is to be read from bottom to top

© 2009 IBM Corporation11 Plan Stability - EXTENDED support current copyprevious copy REBIND … PLANMGMT(EXTENDED)REBIND … SWITCH(ORIGINAL) move delete current copyprevious copyoriginal copy move clone Incoming copyoriginal copy clone delete

© 2009 IBM Corporation12 Access Plan Stability Notes REBIND PACKAGE … –PLANMGMT (BASIC) 2 copies: Current and Previous –PLANMGMT (EXTENDED) 3 copies: Current, Previous, Original REBIND PACKAGE … –SWITCH(PREVIOUS) Switch between current & previous –SWITCH(ORIGINAL) Switch between current & original Most bind options can be changed at REBIND –But a few must be the same … FREE PACKAGE … –PLANMGMTSCOPE(ALL) – Free package completely –PLANMGMTSCOPE(INACTIVE) – Free old copies Catalog support –SYSPACKAGE reflects active copy –SYSPACKDEP reflects dependencies of all copies –Other catalogs (SYSPKSYSTEM, …) reflect metadata for all copies Invalidation and Auto Bind –Each copy invalidated separately 2 important updates: 1.APAR PK80375 – SPT01 Compression 2.Article – IDUG Solutions Journal (

© 2009 IBM Corporation13 Indexing Enhancements

© 2009 IBM Corporation14 Index on Expression SELECT * FROM CUSTOMERS WHERE YEAR(BIRTHDATE) = 1971 DB2 9 supports “index on expression” –Can turn a stage 2 predicate into indexable Previous FF = 1/25 Now, RUNSTATS collects frequencies. Improved FF accuracy CREATE INDEX ADMF001.CUSTIX3 ON ADMF001.CUSTOMERS (YEAR(BIRTHDATE) ASC)

© 2009 IBM Corporation15 Index Enhancement - Tracking Usage Additional indexes require overhead for –Utilities REORG, RUNSTATS, LOAD etc –Data maintenance INSERT, UPDATE, DELETE –Disk storage –Optimization time Increases optimizer’s choices But identifying unused indexes is a difficult task –Especially in a dynamic SQL environment

© 2009 IBM Corporation16 Tracking Index Usage RTS records the index last used date. –SYSINDEXSPACESTATS.LASTUSED Updated once in a 24 hour period –RTS service task updates at 1st externalization interval (set by STATSINT) after 12PM. if the index is used by DB2, update occurs. If the index was not used, no update. "Used", as defined by DB2 as: –As an access path for query or fetch. –For searched UPDATE / DELETE SQL statement. –As a primary index for referential integrity. –To support foreign key access

© 2009 IBM Corporation17 General Query Performance Enhancements

© 2009 IBM Corporation18 GROUP BY Sort Avoidance Improved sort avoidance for GROUP BY –Reorder GROUP BY columns to match available index –Remove 'constants' from GROUP BY ordering requirement ordering requirement reduced to just C1 SELECT … FROM T1 GROUP BY C2, C1 Index 1 (C1, C2)  GROUP BY in C2, C1 sequence  Index in C1, C2 sequence SELECT … FROM T1 WHERE C2 = 5 GROUP BY C2, C1  C2 Constant

© 2009 IBM Corporation19 GROUP BY Sort Avoidance Continued…. –Allow swapping of ordering columns using transitive closure ordering requirement changed to T2.C1, T2.C3 –Improvement for 'partially ordered' cases with unique index if we have unique index on C4, C1 –Sort can be avoided SELECT … FROM T1, T2 WHERE T1.C1 = T2.C1 GROUP BY T1.C1, T2.C3  Contains T1 & T2 SELECT C1, C2+C3, C4 FROM T1 GROUP BY 1, 2, 3

© 2009 IBM Corporation20 GROUP BY Sort Avoidance Implications Implications of improved sort avoidance for GROUP BY –May improve query performance!!! –Data may be returned in a different order Always been true in any DB2 release –Also true in other DBMSs Relational theory states that order is NOT guaranteed without ORDER BY

© 2009 IBM Corporation21 Sort Improvements Reduced workfile usage for very small sorts –Final sort step requiring 1 page will NOT allocate workfile More efficient sort with FETCH FIRST clause –V8 and prior, Sort would continue to completion Then return only the requested ‘n’ rows –From V9, If the requested ‘n’ rows will fit into a 32K page, –As the data is scanned, »Only the top ‘n’ rows are kept in memory »Order of the rows is tracked »No requirement for final sort

© 2009 IBM Corporation22 FETCH FIRST V8 Example Sort is not avoided via index –Must sort all qualified rows C Sort Scan C Fetch SELECT C1 FROM T ORDER BY C1 FETCH FIRST 3 ROWS ONLY 10 row table. Who cares? But, 1 million rows?

© 2009 IBM Corporation23 FETCH FIRST DB2 9 Example Sort is not avoided via index –But in-memory swap avoids sort Pointers maintain order C Scan 1 st Fetch SELECT C1 FROM T ORDER BY C1 FETCH FIRST 3 ROWS ONLY Suggestion: Add FETCH FIRST when subset is required nd Fetch 3 rd Fetch Memory

© 2009 IBM Corporation24 Dynamic Prefetch Enhancements Seq. Pref. cannot fall back to Dyn. Pref. at run time Plan table may still show ‘S’ for IX + Data access Sequential PrefetchDynamic Prefetch Chosen at bind/prepare timeDetected at runtime Requires hit to a triggering pageTracks sequential access pattern Only prefetch in one directionPrefetch forward or backward Used for tablespace scan & LOBsUsed for index & index+data access ET reductions between 5-50% measured at SVL 10-75% reduction in synchronous I/O’s

© 2009 IBM Corporation25 Clusterratio Enhancement New Clusterratio formula in DB2 9 –Including new DATAREPEATFACTOR statistic Differentiates density and sequential Controlled by zparm STATCLUS –ENHANCED is default –STANDARD disables, and is NOT recommended Recommend RUNSTATS before mass REBIND in DB2 9 Dense (and sequential)Sequential (not dense)

© 2009 IBM Corporation26 Clusterratio Impacts Clusterratio may be –Higher for indexes With many duplicates (lower colcardf) –In recognition of sequential RIDs On smaller tables –Less clusterratio degradation from random inserts Indexes that are reverse sequential –Lower for random indexes No benefit from dynamic prefetch Clusterratio(CR)/DataRepeatfactor (DRF) patterns High DRFLow DRF High CR Sequential but not denseDensity matching clustering or small table Low CR Random indexUnlikely

© 2009 IBM Corporation27 Parallelism Enhancements In V8 –Lowest cost is BEFORE parallelism In DB2 9 –Lowest cost is AFTER parallelism Only a subset of plans are considered for parallelism Optimizer Parallelism One Lowest cost plan survives How to parallelize these plans?

© 2009 IBM Corporation28 Additional Parallelism Enhancements In V8 –Degree cut on leading table (exception star join) In DB2 9 –Degree can cut on non-leading table Benefit for leading workfile, 1-row table etc. –Histogram statistics exploited for more even distribution For index access with NPI –CPU bound query degree <= # of CPUs * 4 <= # of CPUs in V8

© 2009 IBM Corporation29 Histogram Statistics

© 2009 IBM Corporation30 RUNSTATS Histogram Statistics RUNSTATS will produce equal-depth histogram –Each quantile (range) will have approx same number of rows Not same number of values –Another term is range frequency Example 1, 3, 3, 4, 4, 6, 7, 8, 9, 10, 12, 15 (sequenced) –Lets cut that into 3 quantiles. 1, 3, 3, 4,4 6,7,8,910,12,15 Seq NoLow ValueHigh ValueCardinalityFrequency 11435/ / /12

© 2009 IBM Corporation31 RUNSTATS Histogram Statistics Notes RUNSTATS –Maximum 100 quantiles for a column –Same value columns WILL be in the same quantile –Quantiles will be similar size but: Will try to avoid big gaps inside quantiles Highvalue and lowvalue may have separate quantiles Null WILL have a separate quantile Supports column groups as well as single columns Think “frequencies” for high cardinality columns

© 2009 IBM Corporation32 Histogram Statistics Example SAP uses INTEGER (or VARCHAR) for YEAR-MONTH Assuming data for 2006 & 2007 –FF = (high-value – low-value) / (high2key – low2key) –FF = ( – ) / ( – ) –10% of rows estimated to return WHERE YEARMONTH BETWEEN AND Data assumed as evenly distributed between low and high range

© 2009 IBM Corporation33 Histogram Statistics Example Example (cont.) –Data only exists in ranges & Collect via histograms –45% of rows estimated to return No data between & WHERE YEARMONTH BETWEEN AND

© 2009 IBM Corporation34 Global Optimization

© 2009 IBM Corporation35 Problem Scenario 1 V8, Large Non-correlated subquery is materialized* SELECT * FROM SMALL_TABLE A WHERE A.C1 IN (SELECT B.C1 FROM BIG_TABLE B) –“BIG_TABLE” is scanned and put into workfile –“SMALL_TABLE” is joined with the workfile V9 may rewrite non-correlated subquery to correlated –Much more efficient if scan / materialisation of BIG_TABLE was avoided –Allows matching index access on BIG_TABLE SELECT * FROM SMALL_TABLE A WHERE EXISTS (SELECT 1 FROM BIG_TABLE B WHERE B.C1 = A.C1) * Assumes subquery is not transformed to join

© 2009 IBM Corporation36 Problem Scenario 2 V8, Large outer table scanned rather than using matching index access* SELECT * FROM BIG_TABLE A WHERE EXISTS (SELECT 1 FROM SMALL_TABLE B WHERE A.C1 = B.C1) –“BIG_TABLE” is scanned to obtain A.C1 value –“SMALL_TABLE” gets matching index access V9 may rewrite correlated subquery to non-correlated SELECT * FROM BIG_TABLE A WHERE A.C1 IN (SELECT B.C1 FROM SMALL_TABLE B) –“SMALL_TABLE” scanned and put in workfile –Allows more efficient matching index access on BIG_TABLE * Assumes subquery is not transformed to join

© 2009 IBM Corporation37 Generalized Sparse Index and In-memory Data Caching

© 2009 IBM Corporation38 Pre-V9 Sparse Index & in-memory data cache V4 introduced sparse index –for non-correlated subquery workfiles V7 extended sparse index –for the materialized work files within star join V8 replaced sparse index –with in-memory data caching for star join Runtime fallback to sparse index when memory is insufficient

© 2009 IBM Corporation39 RID T1T1 T 2 (WF) NLJ... t1.c = t2.c Key Binary Search of sparse index to look up “approximate “ location of qualified key Sparse Index sorted in t2.c order Workfile sorted in t2.c order T 2 (WF) How does Sparse Index work? Sparse index may be a subset of workfile (WF) –Example, WF may have 10,000 entries Sparse index may have enough space (240K) for 1,000 entries Sparse index is “binary searched” to find target location of search key At most 10 WF entries are scanned

© 2009 IBM Corporation40 Data Caching vs Sparse Index Data Caching –Also known as In-Memory WF –Is a runtime enhancement to sparse index Sparse Index/In-Memory WF –Extended to non-star join in DB2 9 New ZPARM MXDTCACH –Maximum extent in MB, for data caching per thread –If memory is insufficient Fall-back to sparse index at runtime

© 2009 IBM Corporation41 T1T1 T 2 (WF) NLJ t1.c = t2.c Binary Search of WF to look up exact location of qualified key Workfile sorted in t2.c order How does In-Memory WF work? Whereas sparse index may be a subset of WF –IMWF contains the full result (not sparse) –Example, WF may have 10,000 entries IMWF is “binary searched” to find target location of search key T 2 (WF)

© 2009 IBM Corporation42 Benefit of Data Caching All tables lacking an index on join column(s): –Temporary tables –Subqueries converted to joins –…..any table V9 also supports multi-column sparse index

© 2009 IBM Corporation43 Dynamic Index ANDing

© 2009 IBM Corporation44 Dynamic Index ANDing Challenge Filtering may come from multiple dimensions Creating multi-column indexes to support the best combinations is difficult F D5 D4 D2 D1 D3

© 2009 IBM Corporation45 Index ANDing – Pre-Fact Pre-fact table access –Filtering may not be (truly) known until runtime F D1 Filtering dimensions accessed in parallel Join to respective fact table indexes Build RID lists F D3 F D5 RID list 1 RID list 2 RID list 3 X Runtime optimizer may terminate parallel leg(s) which provide poor filtering at runtime

© 2009 IBM Corporation46 Index ANDing – Fact and Post-Fact Fact table access –Intersect filtering RID lists –Access fact table From RID list Post fact table –Join back to dimension tables Remaining RID lists are “ANDed” (intersected) RID list 2 RID list 3 Using parallelism RID list 2/3 Final RID list used for parallel fact table access

© 2009 IBM Corporation47 V8 RID Pool failure = TS Scan SORT RID List Tablespace SCAN Physical or Logical resource constraint RID Processing

© 2009 IBM Corporation48 V9 RID Pool Fallback Plan SORT RID List Workfile Fall Back plan writes pair of join result rids into Workfile Physical or Logical resource constraint SORT Next portion of Rids retrieved

© 2009 IBM Corporation49 Dynamic Index Anding Highlights Pre-fact table filtering –Filtering dimensions accessed concurrently Runtime optimization –Terminate poorly filtering legs at runtime More aggressive parallelism Fallback to workfile for RID pool failure –Instead of r-scan APAR PK76100 – zparm to enable EN_PJSJ

© 2009 IBM Corporation50 REOPT Auto Based On Parameter Marker Change

© 2009 IBM Corporation51 REOPT enhancement for dynamic SQL V8 REOPT options –Dynamic SQL REOPT(NONE, ONCE, ALWAYS) –Static SQL REOPT(NONE, ALWAYS) V9 Addition for Dynamic SQL –Bind option REOPT(AUTO)

© 2009 IBM Corporation52 Dynamic SQL REOPT - AUTO For dynamic SQL with parameter markers –DB2 will automatically reoptimize the SQL when Filtering of one or more of the predicates changes dramatically –Such that table join sequence or index selection may change Some statistics cached to improve performance of runtime check –Newly generated access path will replace the global statement cache copy. First optimization is the same as REOPT(ONCE) –Followed by analysis of the values supplied at each execution of the statement

October 25–29, 2009 Mandalay Bay Las Vegas, Nevada © 2009 IBM Corporation The future runs on System z Click to edit Master subtitle style DB2 9 Optimizer Jeff Freschl, IBM Silicon Valley Lab

© 2009 IBM Corporation54 Virtual Tables A new way to internally represent subqueries –Represented as a Virtual table Allows subquery to be considered in different join sequences May or may not represent a workfile Apply only to subqueries that cannot be transformed to joins Correlated or non-correlated?......I shouldn’t have to care!

© 2009 IBM Corporation55 EXPLAIN Output Additional row for materialized “Virtual Table” –Table type is "W" for "Workfile". Name includes an indicator of the subquery QB number –Example  “DSNWFQB(02)” –Non-materialized Virtual tables will not be shown in EXPLAIN output. Additional column PARENT_PLANNO –Used with PARENT_QBLOCKNO to connect child QB to parent –V8 only contains PARENT_QBNO Not possible to distinguish which plan step the child tasks belong to.