DB27 - DB2 z/OS Version 8 & 9 Transition - 3 Days

View Dates and Locations

Course Description

This course is aimed at Systems Programmers, Programmers and DBA's who are moving from DB2 Version 7 to DB2 Version 9 and therefore need to understand the new features and facilities of DB2 Versions 8 & 9. This lecture based three-day course covers all of the new features in detail.


A strong working knowledge of DB2 Version 7 is required to attend this course.


The aim of this course is to provide the delegate, familiar with DB2 V7, with the necessary skills required to use the new Version 8 & 9 features.


The lectures apply to DB2 running in a z/OS environment.


For on-site courses (i.e. at your premises), we are more than happy to tailor the course agenda to suit your exact requirements. In many cases, we are able to build your in-house standards and naming conventions into the delivered course.

On-site course enquiry (from £165 pp per day)

Course Details

Version 8 Features

64-bit Architecture Support
DB2's Exploitation of 64-bit Architecture Support
Bufferpool Storage Enhancements
Bufferpool Configuration Changes
RID Pool Storage Enhancements
Sort Pool Storage Enhancements
Compression Dictionary Storage Enhancements
EDM Pool Storage Enhancements
Lob Data Storage Enhancements
Number of Open Datasets
IRLM Storage Enhancements
Increased Log Datasets

Increased Number Of Partitions
Maximum Number Of Partitions
New Considerations when Partitioning
Create Tablespace - DSSIZE Parameter (Recap)
Altering DSSIZE (Recap)
Data Set Names
Table-Controlled Partitioning
Table-Controlled Partitioning Example
Altering a Table to Add Table Partitioning
Converting to Table-controlled Partitioning
Table-controlled Partitioning Catalog Changes
Index-controlled Partitioning Terminology
Table-controlled Partitioning Terminology
Index classification
Partitioned / Non-Partitioned Example
Partitioned / Partitioning Example
Clustering Within Partition
Changing the Clustering Sequence
Data Partitioned Secondary Indexes
Creating a DPSI
Design Considerations - Why Partition At All?
Design Considerations - Non-Partitioned Index Problems
Design Considerations - DPSI Benefits
Design Considerations - DPSI Problems
DPSIs and Utilities
DPSIs and Planning
Partition Management
Adding Partitions
Adding Partitions - Considerations
Index-controlled to Table-controlled partitioning
Rotating Partitions
Rotate Partition Syntax
Rotating Partitions - Considerations
Altering Partition Boundaries
Rebalancing Partitions using Reorg
Rebalancing Partitions - Considerations
Considerations for User Applications
Display Database Command - Increased Partition Support
Display Database Examples

Availability enhancements
Online Schema Alterations
DB2 Availability Prior to V8
Online Schema Maintenance
Table Data Type changes
New Syntax for Alter Table
Alter Data Type - Impact Upon Table
Alter Data Type - Impact Upon Indexes
Alter Data Type - Index Availability
Alter Data Type - Impact Upon Views / Check Constraints
Alter Data Type - Considerations
Alter Data Type - Restrictions
New Syntax for Alter Index
Alter Index Add Column - Restrictions
Dropping Partitioning Indexes
Deferred Index Creation
Rebuild Pending - Index Avoidance
Version Generating Alter Statements
Version Limits
How Does Versioning Work?
Finding Version Information
Reducing the Number of Active Versions
Versioning and Recovery
Object Schema Change Considerations
Summary of Database State Changes
TableSpace and Index Sizing
Online ZPARM Changes

Long Names
SQL Identifier Length Limits
SQL Statements 2MB long
Select from Insert
Select from Insert Example
Result Table Rows from the Insert Statement
Select From Insert in a Cursor
Select From Insert - New Order By Option
Select From Insert - Error Processing
Select From Insert - Using Cursors With Hold
Select From Insert - Using Savepoints
Updates and Deletes against Result Table Rows
Select From Insert - Considerations
Expressions / Functions in Group By
Qualified Column names in Insert and Update
Is Not Distinct From
Hidden Rowid Generation
Multiple Distinct
Scalar Fullselect
Scalar Fullselect Examples
Scalar Fullselect Restrictions
Common Table Expressions
Writing a Common Table Expression
Common Table Expression Example
Common Table Expression Considerations
Recursive SQL
Recursive SQL Example
Recursive SQL - Controlling Depth of Recursion
Read Only Using Update Locks
Session Variables
New Special Registrers

Dynamic Scrollable Cursors
Insensitive Cursor - Recap
Sensitive Static Cursor with Insensitive Fetch - Recap
Sensitive Static Cursor with Sensitive Fetch - Recap
Fetching from a Scrollable Cursor - Recap
Sensitive Fetches - Update and Delete Holes
Sensitive Fetches - Updated Data
Sensitive Static Cursor with Sensitive Fetch
New Cursor Syntax
Sensitive Dynamic and Asensitive Cursors
Sensitive Cursors - Fetching Rows
Scrollable Cursor Considerations
Multi-row Fetch and Insert
New Syntax for Declare Cursor
Fetching Rowsets
Fetch Examples
Host Variable Arrays
Catering for Update and Delete Holes
Partial Rowsets
Rowsets - SQLCA
Locking Rowsets
Fetch First 'n' Rows
Positioned Update
Positioned Delete
Multi-row Insert
Multi-row Insert Syntax
Static & Dynamic Insert
Get Diagnostics
Get Diagnostics - Statement Information
Get Diagnostics - Condition Information
Get Diagnostics - Connection Information
Get Diagnostics - Examples
Diagnostic Information for Multi-Row Fetch
Get Diagnostics Fetch Example
Diagnostic Information for Multi-Row Insert
Get Diagnostics Insert Example
Stored Procedure / Function Enhancements
Handling Failed Procedures / Functions
Procedure / Function Command Enhancements
Workload Manager Enhancements
Stored Procedure Deprecations
Sql Procedures Language - New Statements
SQLPL - RETURN Statement
SQLPL - SIGNAL Statement and Message_Text Variable
A New Development Center
Debugging Stored Procedures
MQSeries UDFs
Set Current Schema
Set Current Package Path

Identity Column Review
Identity Column Enhancements
Altering Identity Columns
Identity Columns - New Parameters
Identity Columns - Data Sharing Implications
Using Identity Columns with the Load Utility
Catalog Table Changes
Create Sequence Syntax
Sequence Ordering
Altering Sequences
Dropping Sequences
Sequence Authorities
Using Sequences in Applications
Sequences - Considerations and Restrictions
Sequence Application Examples
Consumed Values / Gaps in a Sequence
Duplicate Sequence Values
Sequence Cycle Considerations
Defining a Constant Sequence
Cache Considerations
Sequences and Identity Columns Comparison

What Are Materialized Query Tables?
MQT Features
Creating an MQT
Create MQT Example
Altering an MQT
Alter MQT Example
MQT Fullselect Features / Restrictions
Refresh Table
Populating User Maintained MQTs
Automatic Query Rewrite using MQT
Enabling Automatic Query Rewrite
Enabling Automatic Query Rewrite - DDL Options
Enabling Automatic Query Rewrite - Special Registers
AQR - Using Both Registers
Enabling Automatic Query Rewrite - System Properties
Enabling Automatic Query Rewrite - Query Properties
AQR Examples
Determining if Query Rewrite Occurred
MQTs and Referential Integrity
MQTs and RI - Informational Constraints

Variable Length Index Keys
Variable Length Index Keys - Performance
Altering Index Padding
Index Key Length
Backward Index Scan
Indexable and Stage 1 Predicates
Comparing Unlike Data Types
Mismatched Numeric Comparisons
Mismatched Character Comparisons
Table UDF Cardinality
Table UDF Materialized Fetch
Trigger Enhancements
Cost Based Parallel Sort
Volatile Tables
Star Join Recap
Star Join Example
Star Join Enhancements
Run Time Reoptimization Enhancement
Explaining the Statement Cache
Declared Temporary Table Enhancement
Lock Avoidance Enhancement
SQL Non-Correlated Exists - Enhancement
SQL In List Processing - Enhancement
SQL In List Processing - Dynamic Prefetch
New Plan Table Columns
Plan Table Column Definitions

Visual Explain Overview
Visual Explain Pre-Requisites
Connecting to a Subsystem
Enabling Visual Explain
Tuning Plans and Packages
Tuning Ad-Hoc SQL
Tuning the Dynamic Statement Cache

E-Business Enhancements
Java JCBC Driver Recap
Database Environments
A New DB2 Universal Driver
DB2 Universal Driver - Additional Functionality
XML Enhancements
XML Publishing Functions
XML Publishing Function - XML2Clob
XML Publishing Function - XMLElement
XML Publishing Function - XMLAttributes
XML Publishing Function - XMLForest
XML Publishing Function - XMLConcat
XML Publishing Function - XMLAgg
XML Publishing Function - XMLNamespaces
Unicode History
Character Conversion Terminology
Code Page Differences
Character Conversion Implementation
How Unicode Works
UTF-8 Characters
UTF-16 Characters
DB2 Version 8 and Unicode
Specifying The Unicode CCSID
Unicode Support
Unicode - Impact on Applications
Collating Sequence - Order By
The Unicode Precompiler and SQL Parser
Cobol and PL/I Conversion Issues
Multilple CCSIDs in a Single Statement
Unicode - Further Information

System level point-in-time recovery
Delimited Load and Unload
Runstats Enhancements
New defaults Sortdata and Sortkeys
Automatic Utility Restart
Reorg Rebalance
On-line Reorg for Catalog
Copy with Systempages
Repair and Areo
Repair Versions
Dsn1copy and System Pages
Dpsi Support
Other Utiltiy Changes

Data Sharing Review
Coupling Facility Review
Locking Review
Hierarchical Locking V7 Review
Version 8 Global L-Lock Enhancement
Child L-Lock Propagation Enhancement
Group Bufferpool Review
Group Bufferpool Castout Review
Version 8 Castout Enhancement
Improved LPL Recovery
Batched Updates For Index Page Splits
Resolution Of Indoubt URs in Restart Light

Multilevel Security - Background
Defining RACF Security Labels
DB2 Multilevel Security - Seclabel Definition
Seclabel Behaviour
Seclabel Behaviour with Sql
Seclabel Behaviour with Utilities
DB2 Multilevel Security at Object Level
MLS Considerations and Restrictions
Using Session Variables for Security
Special Registers for User Identification
Encrypting Data

Version 9 Features

Version 8 Recap - Types Of Tablespace
Version 8 Recap - Tablespace Definition
Version 9 - Universal Tablespaces
Universal Tablespace Benefits
Maximum Number Of Partitions
Partition-By-Growth Tablespace
Creating A Partition-By-Growth Tablespace
Partition-By-Growth Tablespaces - Behaviour
Partition-By-Growth - Partition Allocation
Partition-By-Growth Tablespaces - Insert
Partition-By-Growth Tablespaces - Reorg
Partition-By-Growth Tablespaces - Other Utilities
Partition-By-Range Tablespace
Partition-By-Range Tablespaces - Considerations
Universal Tablespaces - Catalog Changes
Implicit Object Creation
Automatic Database Creation
Implicit Database Creation - Considerations
Automatic Tablespace Creation
Default Bufferpool Usage
Other Implicit System Required Objects
SMS Storage Classes with Db2 Defined Datasets
Clone Tables - Fast Data Replacement
Why Use Clone Tables?
Creating A Clone Table
Dropping A Clone Table
Clone Table Considerations
Creating a Clone - Catalog Activity
Creating a Clone - Index and Lob Catalog Activity
Clone Tables - The Exchange Command
Clone Tables - Exchange Considerations
Clone Tables - Locking Considerations
Clone Tables - DB2 Commands
Clone Tables - Authority
Clone Tables - Utilities
Column Renaming
Column Renaming Restrictions
Alter Long Varchar to Varchar
Refresh EARLY Code Without an IPL
Conditional Restart Log Truncation by Timestamp
Improved Insert Performance - The Append Parameter
Index Renaming
Catmaint Enhancement - Update Schema
Update Schema Restrictions

Trigger Recap
Trigger Recap - Before and After Triggers
Instead Of Triggers
Instead Of Triggers - Restrictions
Instead Of Triggers - Authorisation
Instead Of Triggers - Catalog Changes
The Merge Statements
Merge Statement Restrictions
Merge Statement Example
Get Diagnostics Recap
Get Diagnostics - Statement Information
Get Diagnostics - Condition Information
Get Diagnostics - Merge Example
Explaining Merge Statements
Merge Statement Authorisation
Select From Merge / Update / Delete Statements
Select from Insert - Version 8 Recap
Select from Merge
Select from Update
Select from Delete
Order By and Fetch First in Subselect
The Order By Order Of Clause
The Truncate Statement
Truncate Examples
Using Truncate With Multi-Level Security
Truncate Restrictions
Union, Intersect and Except
Version 8 Recap - Union
Intersect and Except
Intersect and Except Examples
Set Current Schema Enhancement
Cultural Sort and Case Insensitive Comparison
Collation Key Examples
Implicitly Hidden Columns
Bigint - Data Type
Bigint - Scalar Function
Binary / Varbinary - Data Types
Binary - Data Type and Function
Decfloat - Data Type
Decfloat - Scalar Function
New Scalar Functions
New Scalar Functions

System Z and zIIP Exploitation
Virtual Storage Management
Index Page Size
Index Page Size Specification
Index Compression
Index Compression Considerations
Index Compression - Estimation
Index Compression - Dsn1 Sample Output
Table vs. Index Compression Comparisons
Resource Limit Facility Enhancement
Buffer Manager Enhancements
Logging Recap
Not Logged Tablespaces
Switching On and Off Not Logged
Logging Considerations
Not Logged with XML Tablespaces
Not Logged with LOB Tablespaces
Recovering Not Logged Tablespaces
Load / Reorg with Not Logged Tablespaces
Rebuild Index with Not Logged Tablespaces
Check Data with Not Logged Tablespaces
Queisce with Not Logged Tablespaces
Internet Protocol Version 6 Support

Run Time Reoptimization Enhancement
Locking Recap - Page / Row Lock Modes
Locking Recap - Isolation Levels
Locking Recap - Sensitive Static Cursors
Locking Recap - Sensitive Cursor Update / Delete Holes
Locking Recap - Sensitive Cursor Positioned Updates
Optimistic Locking
Optimistic Locking Example
Row Change Timestamp Selection
Row Change Timestamp Insertion
Skip Locked Data
Index On Expression
Index On Expression Considerations
Relief for Sequential Key Insert
Randomized Index Ordering
Reordered Row Format
Moving to Reordered Row Format
Histogram Statistics
Page-Range Screening Optimization
Global Query Optimization

Stored Procedures Recap
An SQL PL Procedure Example
Procedure Preparation
Native (Internal) SQL Procedures
How Native SQL Procedures Work
Creating Native and External SQL Procedures
Creating Native SQL Procedures
Altering Native SQL Procedures
Native SQL Procedures - Versioning
Native SQL Procedures - Binding Across Servers
Native SQL Procedures - Command Enhancements
Other Sql-Pl Enhancements
Sql Pl - Get Diagnostics Enhancement
Sql Pl - FOR Statement
Sql Pl - Nested Compound Statements
SQL Procedure Example - Nested Compound Statement
Sql Pl - New Special Registers
Debugging Native Stored Procedures
LOB Data Manipulation - Recap
LOB Definition And Manipulation
Base Table Definition
LOB Tablespace And Auxiliary Table Requirements
LOB Tablespace / Table Definition
LOB Data Manipulation
Using LOB Locators
Lob - Host Variables
Examples using LOB Variables
Examples of Lob Manipulation using Locator Variables
File Reference Variables
Defining File Reference Variables
File Reference Variables - Example
Loading Data uning File Reference Variables
File Reference Variables - New Dsnzparm
Fetch Continue
Fetch Continue Example
Fetch Continue Considerations
DB2 JCC Java Driver
JCC Driver Enhancements
Spatial Support
Change to the SPUFI Defaults Panel

eXtensible Markup Language Introduction
Well Formed Documents
XML Data
Integration of XML Data
XML Serialization Function - XML2Clob
XML Publishing Function - XMLElement
XML Publishing Function - XMLAttributes
XML Publishing Function - XMLForest
XML Publishing Function - XMLConcat
XML Publishing Function - XMLAgg
XML Publishing Function - XMLNamespaces
Overview of pureXML
XML Data Model
XML Parser
XML Schema Repository (XSR)
XPath Axes
XPath Functions
XML Document Storage Infrastructure
Accessing XML Data
SQL/XML Publishing Functions
XML Indexes
Index Considerations
Application development
Database Administration Support
XML Schema
XML Decomposition

Reduction in CPU Processing
Load Enhancements - Sortkeys
Unload Enhancements - Skip Locked Data
Reorg Parallelism Enhancements
Reorg Shrlevel Change - NPSI Enhancement
Reorg Shrlevel Change - Drain Enhancement
Reorg Shrlevel Change - Lob Enhancement
Check Data Enhancements
Copy Enhancements - Checkpage Option
Copy Enhancements - Scope Pending
Recover Enhancements - Restorebefore
Recover Enhancements - PIT Recovery
Recover Enhancements - PIT Recovery Phases
Report Tablespaceset Enhancements
Modify Recovery Enhancements
Rebuild Index Enhancements
Template Switching
Clone Table Support
The Ability to Cancel DB2 Commands

The Existing 3 Tier Security Model
3 Tier Problems
Security Enhancement - Trusted Contexts / Roles
Trusted Contexts
Creating Trusted Contexts
Trusted Context / Role Examples
Authid Switching
Using a Trusted Connection in a JDBC Application
Trusted Connection - Catalog Changes
Other Security Enhancements

Initiating Automatic GRECP Recovery
Postponed Abort Units of Recovery
Restart Processing - Opening Datasets
New Access Database Command
Index Enhancements
Other Enhancements

Course Format

The course is purely lecture based and contains no practical exercises. A comprehensive Student Guide is supplied which contains detailed documentation of the new version together with many syntax examples where relevant. Delegates will also be able to access a free help-line with technical questions relating to topics covered on the course.


Course Enquiry