DB2 11 for z/OS Highlights DB2 for z/OS Smart Seminar Nashville
by user
Comments
Transcript
DB2 11 for z/OS Highlights DB2 for z/OS Smart Seminar Nashville
IBM Software Group DB2 11 for z/OS Highlights DB2 for z/OS Smart Seminar Nashville March 18, 2014 Robert Catterall, IBM [email protected] © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Agenda Connectivity enhancements Storage enhancements Serviceability SQL enhancements SQL optimization Temporal update and DB2-managed data archiving XML Index enhancements Security enhancements Advanced design options 2 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Connectivity enhancements Enhanced client info fields Cancel thread Bind/DDL/utility break-in 3 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Enhanced client information fields Longer client information fields for distributed applications – Pre-DB2 11: long value set by client API is truncated – DB2 11 (NFM): value set by the API supported by extended lengths • Tolerated in CM, but still truncated to 16 bytes (same as pre-V11) – Support for longer client information fields requires APPLCOMPAT(V11R1) Longer field support for these special registers: – CLIENT_USERID supports up to 128 bytes – CLIENT_WRKSTNNAME supports up to 255 bytes – CLIENT_APPLNAME supports up to 255 bytes – CLIENT_ACCTNG supports up to 255 bytes Longer fields supported in DDF traces, messages and displays in CM 4 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Exploiting enhanced client information fields Resource Limit Facility (RLF) can govern SQL statement activity based on longer client information fields in NFM System profile monitoring supports longer client information fields in NFM WLM classification rules can utilize longer client information fields when running z/OS V2R1 5 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Cancel thread enhancement Pre DB2 11 CANCEL DDF THREAD may not work in some cases – Historically "soft", or reactive in nature – Cancel detection point may not be encountered in a timely manner DB2 11 New FORCE keyword on CANCEL THREAD command – Purges thread of a remote connection in the DB2 – FORCE option accepted only after CANCEL THREAD issued without the FORCE option – Available in CM Purge running DDF SRB using new z/OS purge SRB function – Requires new z/OS CALLRTM TYPE=SRBTERM service • Available in z/OS 1.13 or later via APAR OA39392 6 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS BIND/DDL break-in RELEASE(DEALLOCATE) – RELEASE is a BIND /REBIND option to handle table space locks and package sections allocated to a thread • Default is COMMIT – free on commit • DEALLOCATE – retain until thread deallocation – Opportunity for performance benefit for: • Long running batch with frequent COMMIT • Transactional thread reuse (e.g., CICS protected threads, highperformance DBATs) – Historically, what has restrained use of RELEASE(DEALLOCATE)? • Virtual storage constraints (pre V10) • DDF workload (pre V10) • The need to break in for BIND/DDL/utility operations 7 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS BIND/DDL/utility break-in DB2 10 DDF threads – To enable high-performance DBATs: • Rebind packages with RELEASE(DEALLOCATE) • Issue command -MODIFY DDF PKGREL(BINDOPT) – To disable • –MODIFY DDF PKGREL(COMMIT) No good solution for non-DDF thread in DB2 10 DB2 11 DDF threads – High-performance DBAT enablement same as for DB2 10 – To disable • Automatically done on next COMMIT if BIND/REBIND, DDL, or utility is blocked DB2 11 non-DDF threads – Automatically done on next COMMIT if BIND/REBIND, DDL, or utility is blocked – Idle threads break in via PM95929, PM96001, PM96004 8 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Storage enhancements Hardware-related storage exploitation Buffer pool enhancements 9 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Hardware-related storage exploitation 1 MB page frames – Can boost performance by making virtual storage to real storage address translation more CPU-efficient (thanks to reduction in translation lookaside buffer “misses”) – DB2 11: log buffers backed by 1 MB frames • Allocation precedence over buffer pools • May want to increase LFAREA value (in IEASYSxx member of PARMLIB) to accommodate log buffers – Exploit pageable 1 MB frames • Buffer pool control blocks (not data pages) • Z 13 or EC12 or BC12 server required • Flash Express memory required 10 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Buffer pool enhancements FRAMESIZE attribute of ALTER BUFFERPOOL – DB2 11 allows FRAMESIZE(2G) • • • – PGFIX(YES) required z13 or EC12 server required If PGFIX(NO), then buffer pool allocated using 4K pages DB2 11: buffer pool control blocks can go in pageable 1 MB frames • Buffer pool control blocks (also known as page manipulation blocks, or PMBs) typically occupy 4-5% of the size of the corresponding buffer pool – Heavily accessed (so it’s good to have them in 1MB page frames, for CPU efficiency) – Not the object of read or write I/O operations (so no need to page-fix them) • Requires z13 or EC12 server and Flash Express 11 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS More buffer pool enhancements Attributes VPSIZEMIN, VPSIZEMAX (WLM-managed buffer pool sizing) – Applies to AUTOSIZE(YES) pools – VPSIZEMIN(integer | *) • Integer is minimum number of buffers to allocate • * is default, indicates DB2 will set the minimum value to 75% of current size – VPSIZEMAX(integer | *) • Integer is maximum number of buffers to allocate • * is default, indicates DB2 will set the maximum value to 125% of current size Buffer pool GETPAGE reclassification – DB2 9/DB2 10 : GETPAGEs associated with dynamic and list prefetch were classified as random – DB2 11: GETPAGEs associated with any type of prefetch (sequential or dynamic or list) are classified as sequential 12 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Serviceability Work file space instrumentation ACCESS DB Client special registers and global variable zIIP offload expansion 13 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Work file table space instrumentation New system parameters for work file alerts – WFSTGUSE_AGENT_THRESHOLD • Agent-level warning • Percentage of work file space in use by an agent • Message DSNI052I issued when exceeded – Once per unit of work – WFSTGUSE_SYSTEM_THRESHOLD • System-level warning • Percentage of work file space in use by the system • Message DSNI053I issues when exceeded – If WFDBSEP=YES • The percentages are of the segregated temporary spaces • Messages indicate if due to DGTTs, work files, or both 14 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS New option for ACCESS DATABASE command Externalize real-time statistics to the catalog tables – ACCESS DB(*) SP(*) MODE(STATS) • Retrofitted to DB2 10 • Wildcarding is supported, but can impact performance • Wildcard options: – – – – 15 DB(*) SP(*) for subsystem level DB(db-name) SP(*) for database level DB(db-name) SP(space-name) for table space level DB(db-name) SP(space-name) PART(part-#) for partition level SVC © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Client special register and global variable CLIENT_CORR_TOKEN special register – Client specified correlation information – 255 bytes – Defaults to the generated client Logical Unit of Work ID (LUWID) – Reported in DISPLAY THREAD • DSNV402I message V442 section – Can be SET via various APIs: • • • • sqleseti JDBC SET_CLIENT_ID function SIGNON CLIENT_IPADDR global variable – Set to IP address obtained from the network – Currently requires the 10.5 level IBM Data Server driver 16 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS zIIP offload expansion zIIP for all asynchronous processing executed as SRB mode system agents (except for P-lock negotiation in data sharing mode) Not expected to assist as much as V10, but can provide increase zIIP use Up to 100% of processing for asynchronous enclave service request blocks that execute in the DB2 MSTR, DIST, and DBM1 address spaces – Log write and read – Pseudo-deleted index entry clean-up – XML multi-version clean up Expanded RUNSTATS and LOAD redirect – Enclave SRB tasks for LOAD, REORG, and REBUILD INDEX inline stats – Enclave SRB tasks for RUNSTATS column group distribution stats – Enclave SRB tasks for LOAD REPLACE index management 17 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS SQL Enhancements Application compatibility Global variables SQL PL enhancements – Arrays – Autonomous transactions GROUP BY extensions – Grouping sets – Super groups Hadoop Integration JSON support 18 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Application compatibility Occasionally SQL functions change behavior – Usually in support of family compatibility and SQL standards – This introduces an application incompatibility which can • Delay version migrations • Potentially create a single version charge issue V9 App V10 App – These are documented in the Release Incompatibilities Examples of DB2 10 incompatibilities and resolutions – CHAR function results with decimal argument • Leading zeroes no longer returned when there is a decimal point • ZPARM BIF_COMPATIBILITY was introduced to reverse the V10 behavior – Strong data typing for non-Java stored procedures • ZPARM DDF_COMPATIBILITY reversed this behavior 19 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Application compatibility DB2 11 fences DML behavior change in CM with APPLCOMPAT – Does not fence DDL or DCL – Separates application migration from the system migration • Application migration can begin after the system migration is complete • Or the application migration can be delayed for up to 2 future DB2 versions APPLCOMPAT ZPARM and bind parameter – V10R1 • DML behaves as it did for DB2 10 • Must use V10R1 until NFM • Attempting to use new features under V10R1 results in SQLCODE -4743 – V11R1 • Requires the subsystem / group to be in NFM • New DML behavior is introduced • Also required for new features of V11 20 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Application compatibility ZPARM APPLCOMPAT is default value for BIND / REBIND parameter – No effect on existing packages (or REBIND PACKAGE w/ APPLCOMPAT specified) – Defaults to V11R1 for new installations and to V10R1 for migrations BIND / REBIND parameter – Defaults to ZPARM APPLCOMPAT value – V11R1 will cause an error before NFM • Once NFM, can BIND / REBIND with V10R1 or V11R1 – REBIND existing application when ready for new behavior – REBIND existing application when wanting to use new features • WARNING: Must also be ready for potential behavioral changes CURRENT APPLICATION COMPATIBILITY special register for dynamic SQL – Defaults to package APPLCOMPAT – Cannot be set to V11R1 until NFM • Once NFM, can bet set to V10R1 or V11R1 21 © 2014 IBM Corporation © 2015 IBM Corporation DB2 11 for z/OS Migration Planning Workshop Global variables The need: how can you pass data values from one SQL statement to another in the context of a thread? – Before DB2 11: • Do it with application code • Want a trigger to be able to access those values? Not easy… – DB2 11: use global variables You can create your own global variables using the new CREATE VARIABLE statement – DB2 11 also provides a few built-in global variables: • SYSIBM.CLIENT_IPADDR More on this archive stuff to come • SYSIBMADM.GET_ARCHIVE • SYSIBMADM.MOVE_TO_ARCHIVE } 22 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Global variables example 23 © 2014 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Array parameters and variables DB2 11: an array-type parameter can be passed as input to (or received as output from from) a native SQL procedure – CALL can come from another SQL PL routine, or from Java or .NET client (if Java or .NET, need IBM Data Server Driver type 4 driver) – SQL UDFs can also receive or return arrays For .NET client, support is for array as input parameter Arrays can also be variables in SQL PL routines Array first created via DDL as user-defined data type (UDT) Built-in functions are provided to: – Construct arrays – Derive tables from arrays – Obtain information about arrays – Navigate array elements 24 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS More on array parameters 2 types: – Ordinary • User-defined limit on # of elements (default: INTEGER high value) • Elements referenced by their ordinal position in the array – Associative • No user-defined upper bound on number of elements • Elements ordered by and can be referenced via an array index value • Values in a given array index are INTEGER or VARCHAR, are unique, and don’t have to be contiguous CREATE examples: Ordinary Associative 25 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Autonomous transactions Refers to native SQL procedures that can commit work outside the commit scope of the calling program Enabled via the AUTONOMOUS keyword in CREATE PROCEDURE and ALTER PROCEDURE statements – An alternative to the COMMIT ON RETURN option 26 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS More on autonomous transactions An autonomous procedure always commits before returning to the caller – This will NOT commit changes made by the calling application process An autonomous procedure’s unit of work is independent from that of the calling application – Does not share locks with the caller (and so could conceivably contend with the caller) – Can be canceled by terminating the invoker An autonomous procedure cannot be called by another autonomous procedure 27 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS New grouping option: GROUPING SETS Example: determine average total compensation for WorkDept, Job, and EdLevel sets 28 © 2014 IBM Corporation Migration Planning Workshop DB2 11 for z/OS New grouping option: ROLLUP Example: determine average total compensation for the various hierarchies of workdept, job, and edlevel, and for overall set – Column order in GROUP BY expression matters – ORDER BY helps with readability 29 © 2014 IBM Corporation Migration Planning Workshop DB2 11 for z/OS New grouping option: CUBE Example: determine average total compensation for various combinations of workdept, job, and edlevel – Column order in GROUP BY expression doesn’t matter – ORDER BY helps with readability 30 © 2014 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Hadoop integration with DB2 11 for z/OS A new user-defined function (UDF) allows a data analytics job, specified in JAQL, to be submitted to a BigInsights system IBM BigInsights (now available for Linux on System z) A new table UDF reads the output of the analytics job and returns it in relational form 31 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS JSON support PI05250 & PI10521 delivers JSON in DB2 11 Available via IBM DB2 Accessories Suite for z/OS, V3.1 – PID 5697-Q04, Announcement 213-395 See informational APAR II14727 – 10.5 FP3 Data Server Client developerWorks documentation 32 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS SQL optimization APREUSE Statistics feedback Real-time stats changes Query transformations Runtime optimizations DPSI improvements 33 © 2014 IBM Corporation Migration Planning Workshop DB2 11 for z/OS APREUSE DB2 10 APCOMPARE / APREUSE stability across BIND and REBIND – APREUSE options were NONE/NO or ERROR DB2 11 provides APREUSE(WARN) – Attempts to hint the same access path for matched statements – When the access path cannot be maintained, a new one is calculated for those specific matching statements – APREUSE(WARN) will allow the BIND / REBIND to continue DB2 10 APREUSE(ERROR) ... EXPLAIN(ONLY) may represent invalid plan – In DB2 11, this will rolled backed 34 © 2014 IBM Corporation © 2015 IBM Corporation DB2 11 for z/OS Migration Planning Workshop Statistics feedback Optimizer can provide feedback on missing statistics during access path selection and EXPLAIN processing Access path selection (BIND / REBIND / PREPARE) – Externalized to new catalog table SYSSTATFEEDBACK • Table added in CM • Feedback is externalized asynchronously starting in NFM – At interval indicated by STATSINT in ZPARM, or – With ACCESS DB command – Controlled by ZPARM STATFDBK_SCOPE • DYNAMIC, STATIC, NONE, ALL Default – Additional control at the table level • SYSTABLES column STATS_FEEDBACK can be set to ‘Y’ (default) or ‘N’ – RUNSTATS for an object removes these associated recommendations 35 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Statistics feedback NUMCOLUMNS – # of columns in COLGROUP COLGROUPCOLNO – Hex array of column numbers for tooling use TYPE – ‘C’ardinality • Use the COLUMN or COLGROUP option – ‘F’requency • Use FREQVAL option (COUNT = Floor(10, COLCARF-1)) – ‘H’istogram • Use HISTOGRAM option – ‘I’ndex • Collect basic index stats – ‘T’able • Collect basic table stats 36 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop REASON DB2 11 for z/OS Statistics feedback – BASIC • A basic statistical value is missing – KEYCARD • Index column cardinalities missing – LOWCARD • Low cardinality, likely skew – NULLABLE • No distribution stats available for a nullable column – DEFAULT • Predicate likely on a default value – RANGEPRD • No histogram on a range predicate – PARALLEL • Could be improved by balancing data – CONFLICT • Collect consistent stats at the same point in time – COMPFFIX • Multi-column cardinality stats are needed 37 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Real-time statistics changes, resetting catalog statistics Catalog changes – New SYSTABLESPACESTATS columns • UPDATESIZE (BIGINT): bytes added / removed via UPDATE operations since creation, REORG, or LOAD REPLACE • LASTDATACHANGE (TIMESTAMP): last update time for this row in RTS ACCESS DB ... MODE(STATS) – Externalizes in-memory statistics to real-time statistics tables • Also externalizes optimizer feedback information – Wildcarding is supported New RESET ACCESSPATH option for RUNSTATS – Removes collected statistics 38 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Query transformation Common stage 2 predicates transformed to indexable... – Requires REBIND – Column expression predicates (where no index on expression exists) • YEAR(date column) op :hv or ? or literal • DATE(timestamp column) • SUBSTR(left most portion) 39 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Query transformation Common stage 2 predicates transformed to indexable – x BETWEEN col1 AND col2 40 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Query transformation Common stage 2 predicates transformed to indexable – OR and IN on different columns • Rewritten to ORs for multi-index access • WHERE C1 = ? OR C2 IN (1,2) – becomes WHERE C1 = ? OR C2 = 1 OR C2 = 2 Always-true (e.g., 1=1) and always-false (e.g., 1=2) predicates – Some tools and ISV applications use them to turn predicates “on” and “off” – In DB2 10 they are evaluated for each row – DB2 11 prunes them to avoid this redundant checking • DB2 10 already prunes some always false predicates (“=“, or “IN” with Ors) – Example: WHERE C1 = ? OR ‘A’ = ‘B’ • DB2 11 extends always-false pruning to predicates appearing under a “parent AND” – Example: WHERE (1=1 AND T1.C1 = T2.C1) OR (1=2 AND T1.C2 = T2.C2) – OR 0=1 is not pruned (a recognized DB2 technique – used to enforce row permissions) 41 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Query transformation More correlated-to-non-correlated subquery transformation – Example: 42 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Predicate pushdown DB2 11 supports pushdown into materialized views/TEs of: – Non-boolean term (OR) predicate SELECT EMPNO, SALARY, DEPTCOUNT FROM EMP A , (SELECT WORKDEPT, COUNT(*) FROM EMP GROUP BY WORKDEPT) AS B(WORKDEPT, DEPTCOUNT) WHERE A.WORKDEPT = B.WORKDEPT AND (B.WORKDEPT LIKE 'C%' OR B.WORKDEPT LIKE 'A%‘); – Stage 2 predicates (expressions) SELECT EMPNO, SALARY, DEPTCOUNT FROM EMP A , (SELECT WORKDEPT, COUNT(*) FROM EMP GROUP BY WORKDEPT) AS B(WORKDEPT, DEPTCOUNT) WHERE A.WORKDEPT = B.WORKDEPT AND UPPER(B.WORKDEPT) = 'C01' 43 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Predicate pushdown (continued) DB2 11 supports pushdown into materialized views/TEs of: – Predicate in the ON clause of an outer join SELECT EMPNO, SALARY, DEPTCOUNT FROM EMP A LEFT OUTER JOIN (SELECT WORKDEPT, COUNT(*) FROM EMP GROUP BY WORKDEPT) AS B(WORKDEPT, DEPTCOUNT) ON A.WORKDEPT = B.WORKDEPT AND B.WORKDEPT = 'C01'; 44 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Runtime optimizations CASE expression is indexable – For a local predicate – For a join predicate Non-column expressions processed once – Before V11 these were assessed for each row – Examples: • :hv + 5 • CURRENT TIMESTAMP – 1 MONTH 45 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Runtime optimizations Index skipping / early out – Duplicate removal – Benefits GROUP BY and DISTINCT functions – Upward probe to non-leaf page to find the next unique value DECFLOAT – EC12 improvements • CPU reductions, primarily for INSERT and FETCH RID Pool – RID spill-over to work file extended to all scenarios when RID limit is hit (e.g., queries involving column functions) – Hybrid join limited to 80% of the RID pool 46 © 2014 IBM Corporation © 2015 IBM Corporation DB2 11 for z/OS Migration Planning Workshop Data-partitioned secondary indexes (DPSIs) Join probing – Before DB2 11 YEAR C1 2009 1 2010 2011 2 3 • All partitions accessed for each composite row – DB2 11 can eliminate parts when 2009 2010 2011 2012 2013 • Join predicate matches inner table partitioning key – Must be equal (“=“) with same data type / length 47 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Temporal update and DB2-managed data archiving Temporal special registers Temporal view enhancements DB2-managed data archiving 48 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Temporal special registers The need: what if you want a program (or just a SQL statement) to have an other-than-current view of temporal data, but you don’t want to change the program’s code? Solution: two new special registers delivered with DB2 11 – CURRENT TEMPORAL SYSTEM_TIME – CURRENT TEMPORAL BUSINESS_TIME When set to a non-null value, has the effect of adding the following to a SELECT statement that targets a temporal-enabled table (in this case, use of system time is assumed): – FOR SYSTEM_TIME AS OF CURRENT TEMPORAL SYSTEM_TIME Example of setting special register’s value: SET CURRENT TEMPORAL SYSTEM_TIME = CURRENT TIMESTAMP – 1 YEAR; 49 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS More on temporal special registers A special register non-null value, once set, remains in effect for that particular session (thread) until it’s changed (setting to null has the effect of “turning the special register off”) – But if set within a routine, the new value is not passed back to the invoking application SYSTIMESENSITIVE, BUSTIMESENSITIVE bind options determine whether or not SQL statements (static or dynamic) issued through a package will be affected by special registers – Default value is YES If CURRENT TEMPORAL SYSTEM_TIME is set to non-null value for a thread, data modification statements targeting system timeenabled tables are not allowed 50 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS A temporal data enhancement for views With DB2 11, you can use temporal predicates when referring to a view defined on a temporal table – But you can’t use a temporal predicates in defining a view SQLCODE -4736 Base table 51 View © 2014 IBM Corporation Migration Planning Workshop DB2 11 for z/OS DB2-managed data archiving The need: get old and “cold” data out of a table (for better SQL and utility performance), but retain deleted rows in an archive table and transparently enable retrieval of archived rows DB2 11 will do this for you What a DBA does (suppose that table TAB_A is to be archive-enabled): – Create an archive table that looks just like TAB_A (same number of columns, same order of columns, same column names and definitions) – Tell DB2 to associate the archive table with TAB_A (assume that you named the archive table TAB_A_ARCHIVE): – ALTER TABLE TAB_A ENABLE ARCHIVE USE TAB_A_ARCHIVE; 52 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS More on DB2-managed data archiving Temporal and archive tables are mutually exclusive New built-in global variables affect interaction with archive-enabled tables (default value for both is ‘N’): – SYSIBMADM.GET_ARCHIVE – if ‘Y’ then SELECT targeting archive-enabled table will automatically include UNION ALL with archive table – SYSIBMADM.MOVE_TO_ARCHIVE – if ‘Y’ or ‘E’ then rows deleted from archive-enabled table will be inserted into archive table (if ‘Y’ then INSERT/UPDATE/MERGE disabled for base table) ARCHIVESENSITIVE bind option determines whether statements (static or dynamic) will be affected by value of SYSIBMADM.GET_ARCHIVE global variable (default is YES) – ARCHIVE SENSITIVE option on create of native SQL procedure or UDF does the same thing 53 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS XML XQUERY support Cross loader support XML query rewrite 54 © 2014 IBM Corporation Migration Planning Workshop DB2 11 for z/OS XQuery support for XML data Before: XPath expressions used to navigate XML documents and to address parts of XML documents – A subset XQuery, which is a richer language for accessing XML documents – XPath limitations often necessitated using a mixture of XPath and SQL, and that could make query coding more difficult DB2 11 includes XQuery support, providing a richer set of XML expressions that can be used with the built-in functions XMLQUERY, XMLEXISTS, and XMLTABLE – Queries can be expressed purely using XQuery, versus a mixture of XPath and SQL, and that can boost programmer productivity XQuery support was retrofitted to DB2 10 via APARS PM47617 and PM47618 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Cross-loader support Tables with XML columns can now be the target of the cross-loader utility 56 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS XML query rewrite Transforming the XML query into a better performing query Original Query Original Query Price > 100 predicate is pushed down into the “for” clause for better performance Simple query is converted to XPath expression for better performance 57 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Index Enhancements Suppress-null indexes Auto clean-up of pseudo-deleted index entries 58 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Suppress-null indexes Support creation of indexes where the default NULL values are excluded from the index – Reduced index size, improved insert/update/delete performance, 3rd party DBMS compatibility New CREATE INDEX keywords – INCLUDE NULL KEYS (default) • DB2 will create an index entry even if every key column contains the NULL value – EXCLUDE NULL KEYS • DB2 will not create an index entry when every key column contains the NULL value. If any key column is not null the index entry will be indexed Conditions: – All columns of EXCLUDE NULL KEYS must be NULLable – Not supported if the index is defined UNIQUE, BTWO, XML, IOE, INCLUDE 59 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Auto cleanup of pseudo-deleted index entries DB2 11 automatically cleans up pseudo deleted entries – zIIP eligible and runs in the background – Designed to have minimal or no disruption to applications – New ZParm INDEX_CLEANUP_THREADS (0-128) to control number of concurrent cleanup tasks – – – – Default is 10 0 disables index cleanup Value can vary between members of a data sharing group Online changeable – New SYSIBM.SYSINDEXCLEANUP Catalog table to control auto cleanup at index level • Day of week/month, start/end time. • By default cleanup is enabled for all indexes – IFCID 377 written when index is cleaned up -DIS THREAD TYPE(SYSTEM) to see threads – Correlation id in the output shows: 014.IDAEMKxx – xx indicates thread number (01, 02…) 60 © 2014 IBM Corporation © 2015 IBM Corporation DB2 11 for z/OS Migration Planning Workshop Pseudo-deleted index cleanup Cleanup done under system tasks, run as enclave SRBs and zIIP eligible • Parent thread (one per DB2 member) reads through RTS to find candidates – Runs every 5 minutes • Eligible indexes sorted based on number of pseudo deleted rids to delete highest first SYSIBM.SYSINDEXSPACESTATS NAME … IX1 n 100 X 5000 IX2 n 1000 X 20000 IX3 n 500 X 100000 IX4 n 2000 X 75000 IX3 Child cleanup thread IX3 IX4 NPAGES … REORGPSEUDODELETES – Child cleanup thread only started if Index already open for INSERT, UPDATE or DELETE 61 SELECT FROM… ORDER BY Child cleanup thread IX4 Parent thread Index In Memory IX2 IX1 © 2014 IBM Corporation © 2015 IBM Corporation DB2 11 for z/OS Migration Planning Workshop SYSIBM.SYSINDEXCLEANUP example All index spaces in DB_1234 are enabled for cleanup on Sundays from 4:30 until noon, except – Index space IX_9876 is always disabled for cleanup SYSIBM.SYSINDEXCLEANUP DBNAME INDEXSPACE ENABLE_ DISABLE MONTH MONTH _WEEK DAY START _TIME END _TIME DB_1234 NULL E W NULL 7 043000 120000 DB_1234 IX_9876 D NULL NULL NULL NULL NULL DB2 checks SYSIBM.SYSINDEXCLEANUP table at 10 min intervals – Enforcement of new row may be delayed up to 10 min RECOMMENDATION: Use rows in SYSIBM.SYSINDEXCLEANUP only to define exceptions to default index cleanup behavior – Define time windows at system or database levels, rather than specific indexes when possible – Remove unneeded or conflicting rows 62 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Security enhancements Improved RACF integration RACF synchronization of authorization caches Plan program authorization 63 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Packages and RACF Before DB2 11 the Primary AUTHID was used for authorization checking of – BIND, REBIND, Autobind, PREPARE DB2 11 ZParm AUTHEXIT_CHECK (PRIMARY | DB2) available in CM – Not online changeable – Defaults to PRIMARY for DB2 10 behavior • The Primary Authorization ID is used – “DB2” will honor Package OWNER and DYNAMICRULES • Package OWNER used for authorization checking – Can be AUTHID, RACF Group, or Role – Which must be permitted access to RACF resources – A RACF Group requires access to the resource associated with the connection in the RACF DSNR class • DYNAMICRULES – Defines the Authorization ID to be used for Dynamic SQL authorization > Could be the INVOKER, BINDER, or DEFINER – DB2 11 can now honor the BINDER or DEFINER authorization checking 64 © 2014 IBM Corporation © 2015 IBM Corporation DB2 11 for z/OS Migration Planning Workshop RACF synchronization of security caches ... z/OS Event Notification Facility (ENF) Signals notify DB2 of changes in RACF – 62: Options refreshed – 71: User permission changes – 79: User access to a resource RACF User & Group Definitions DSNX@XAC ENF Refreshes Caches Invalidates Packages DB2 Package Authorization Cache 65 Routine Authorization Cache Dynamic Statement Cache DDF User Cache © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Plan program authorization REBIND and Run with no DSNPROGAUTH entry EIUPROG EIUPLAN Y INSERT DSNPROGAUTH entry – Note defaults to ENABLED=N Program EIUPROG now executes the Plan Program DSN8MCG still not allowed to use EIUPLAN 66 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Advanced design options Online schema evolution PIT recovery with pending ALTER DGTT improvements Reserved space for update Compression improvements 67 © 2014 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Online schema evolution … More pending ALTERs: DROP column sc1.table1 in DB1.TS1 Col_1 Col_2 Col_3 Data_1 Data_2 Data_3 Data_1 Data_2 Data_3 68 Reorg SHRLEVEL CHANGE/REFERENCE required to materialize DDL Multiple DROP COLUMNs can be executed before materializing Reorg © 2014 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Online schema evolution... Drop column restrictions: – A column cannot be dropped if • The containing table space is NOT a universal table space • The table is a created global temporary table, a system-period temporal table, a history table, MQT or table referenced by MQT plus others.... • Tables with EDITPROC or VALIDPROC • There are row permissions or column masks dependent on the table • There are triggers defined on the table • The column is an XML column, is part of the table partitioning key, RI • Hash Key column • DOCID / ROWID column • More restrictions apply, see SQL Reference ALTER TABLE – No immediate alters (e.g. Can‘t change data type, add column, add/rotate parts) combined with pending ALTER • Option remains to DROP PENDING CHANGES, then do immediate alters 69 © 2014 IBM Corporation © 2015 IBM Corporation DB2 11 for z/OS Migration Planning Workshop Online Schema Evolution… ALTER partitioning limit key Part # Limit key Access Part # Limit key Access 1 100 R/W 1 100 R/W 2 200 AREOR 2 250 R/W 3 300 AREOR 3 300 R/W 70 © 2014 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Online schema evolution… Online ALTER of partition limit keys – DB2 11: alter limit key is treated as a pending alter (NFM) – The affected partitions are set to AREOR – Online REORG is executed to materialize the pending changes – Supported table spaces types are: • UTS – partitioned by range (PBR) • Classic partitioned table spaces (table-controlled partitioning) – The new limit keys are reflected in SYSTABLEPART in the SWITCH phase of online REORG 71 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Online schema evolution ALTER TABLESPACE ... DROP PENDING CHANGES – Pre DB2 11: AREOR setting is not removed – DB2 11: AREOR setting is removed • Exception: AREOR is still kept if transition to hash organization is in progress 72 © 2014 IBM Corporation © 2015 IBM Corporation DB2 11 for z/OS Migration Planning Workshop PIT Recovery with Pending ALTER … Pre DB2 11: Restrict RECOVER across materializing REORGs PIT t2 3 RECOVER to PIT issued Pending changes 1 Pending ALTER 73 2 Materializing REORG © 2014 IBM Corporation © 2015 IBM Corporation DB2 11 for z/OS Migration Planning Workshop PIT Recovery with Pending ALTER … DB2 11: Allow RECOVER across materializing REORGs PIT t0 logs PIT t1 3 logs RECOVER to PIT issued PIT t2 Pending changes 1 ALTER..pending 74 2 Materializing REORG © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS PIT Recovery with Pending ALTER … DB2 11 PITR with pending ALTER – Support in NFM only – Recovery of data only, not schema definition – A new record is inserted into SYSPENDINGDDL table after RECOVER Table spaces supported: – LOB – XML – Partition by Range (PBR) Universal Table Space (no PBG support) At end of RECOVER to PIT prior to the materializing REORG: – Table space is in restrictive status: REORG-pending (REORP) – REORG to finalize the PIT recovery process is MANDATORY – No other PITR during this period prior to subsequent REORG 75 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS PIT Recovery with Pending ALTER… The subsequent REORG is required – Must on be on ENTIRE table space – SHRLEVEL NONE is not supported – SHRLEVEL CHANGE is overridden by SHRLEVEL REFERENCE Before the subsequent REORG to materialize the schema – No CREATE/ALTER/RENAME/DROP TABLE on the TS or AUX objects – Most other utility jobs fail: DSNU933I (REORG required) REPAIR DBD and REPORT RECOVERY allowed Where there were pending changes on LOB table space: – First REORG the LOB table space, then REORG the base table space 76 © 2014 IBM Corporation © 2015 IBM Corporation DB2 11 for z/OS Migration Planning Workshop PIT Recovery with Pending ALTER Supported ALTERs: Attribute LOB Table space SEGSIZE N/A DSSIZE Table space page size MEMBER CLUSTER N/A Partitioning Limit Key N/A PBR UTS XML Table space N/A N/A * Not all pending ALTERs supported 77 © 2014 IBM Corporation Migration Planning Workshop DB2 11 for z/OS DGTT Improvements … DB2 11: support for NOT LOGGED syntax for DGTTs – Reduce logging overhead/volumes – Less CPU from log processing – Faster rollback/error processing after large insert into DGTTs DB2 11: hold DGTT-based statements across COMMIT – Reduce incremental binds and full prepares – Extended to non-cursor SQL statements – RELEASE (DEALLOCATE) required 78 © 2014 IBM Corporation © 2015 IBM Corporation DB2 11 for z/OS Migration Planning Workshop Reserved space for update ... DB2 11 and prior: indirect references (overflow records) – Created during UPDATE against variable length rows or compressed rows Update row-2 with larger data Data Page 1 Data Page n row-1 Pointer to row-2 row-2 row-100 row-101 row-3 row-2 Impact caused by indirect references – Additional getpages, potentially additional I/Os to the overflow pages – Lower clustering – REORG TABLESPACE necessary to remove indirect references 79 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Reserved Space for Update DB2 11: – INSERT will reserve space for updaters – New DDL keyword for CREATE TABLESPACE on PCTFREE clause: • FOR UPDATE n – Where n is % of free space to leave in each data page by INSERT, LOAD or REORG – New ZParm: PCTFREE_UPD • System default for FOR UPDATE value when it is not specified • If not specified, same behavior as DB2 10 80 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Compression improvements Decompression can be an expensive operation – Executed during evaluating and retrieving records from compressed table space – Higher impact with simple queries scanning large number of row DB2 11 Optimization in decompression process – Software based decompression on top of today’s H/W compression – New decompression routine provides: – Column level decompression – Special optimization to speed up the decompression – Efficient processor cache utilization when handling dictionary – No change on compression ratio – Only for data compression, not for index page – Compatible with existing compression, no user action necessary Another enhancement: when compression dictionary is regenerated, the old dictionary is copied to the log for log-reading data replication tools 81 © 2014 IBM Corporation © 2015 IBM Corporation Migration Planning Workshop DB2 11 for z/OS Thanks for your time Robert Catterall [email protected] 82 © 2014 IBM Corporation © 2015 IBM Corporation