What are the top new features of DB2 10? - Triton Consulting are the top new... · What are the top...

7
© Triton Consulting Ltd 2011 What are the top new features of DB2 10? As you’re probably aware, at the end of October 2010 IBM launched the latest version of its flagship database product – DB2 10 for z/OS. Having been involved in the early beta testing and whilst working with large DB2 for z/OS users, Triton have been able to really get to grips with some of the great new technical features. From a technical point of view there are some really interesting new features and collectively, they deliver real and quantifiable business benefits as well. The business justification for moving to DB2 10 is really quite compelling. However, in this article we’re keeping it techie and taking you through some of the features which we believe are going to be the most important for you to make use of after your upgrade. Top new features: CPU/Performance Improvements Virtual Storage Enhancements Security Extensions Improved Catalog Concurrency Temporal Data Access Path Management pureXML enhancements Currently Committed semantics Automated statistics Dynamic schema change enhancements In-memory object support Optimiser enhancements MEMBER CLUSTER for UTS Backup and recovery enhancements Enhanced audit Include additional index columns Enhanced SQL OLAP functions Skip Migration And many more…. ! Here are some of our personal favourites: CPU/Performance Improvements Most releases of DB2 in the past have kept performance regression very low, with customers typically taking a CPU hit of less than 5% out of the box (and all or some of that could usually be clawed back later through implementing new function). Version 8 of DB2 for z/OS was somewhat more painful for most customers, with the inefficiencies associated with the move to 64-bit addressing typically increasing overall CPU usage by 5-10% and sometimes even more. That CPU increase made it even more difficult than usual for many infrastructure managers to put together a convincing business case for upgrading to V8, especially as many sites began to consider the upgrade just as the current financial crisis began and IT budgets were squeezed. Although Version 9 has since redressed the balance somewhat with modest CPU savings for many customers, it’s clear that IBM was determined to provide a compelling cost case for moving to Version 10 in addition to some intriguing new function. Because of this, CPU improvements were one of the major design goals for

Transcript of What are the top new features of DB2 10? - Triton Consulting are the top new... · What are the top...

© Triton Consulting Ltd 2011

What are the top new features of DB2 10?

As you’re probably aware, at the end of October 2010 IBM launched the latest version of its flagship

database product – DB2 10 for z/OS. Having been involved in the early beta testing and whilst

working with large DB2 for z/OS users, Triton have been able to really get to grips with some of the

great new technical features.

From a technical point of view there are some really interesting new features and collectively, they

deliver real and quantifiable business benefits as well. The business justification for moving to DB2

10 is really quite compelling.

However, in this article we’re keeping it techie and taking you through some of the features which

we believe are going to be the most important for you to make use of after your upgrade.

Top new features:

• CPU/Performance Improvements

• Virtual Storage Enhancements

• Security Extensions

• Improved Catalog Concurrency

• Temporal Data

• Access Path Management

• pureXML enhancements

• Currently Committed semantics

• Automated statistics

• Dynamic schema change enhancements

• In-memory object support

• Optimiser enhancements

• MEMBER CLUSTER for UTS

• Backup and recovery enhancements

• Enhanced audit

• Include additional index columns

• Enhanced SQL OLAP functions

• Skip Migration

• And many more…. !

Here are some of our personal favourites:

CPU/Performance Improvements

Most releases of DB2 in the past have kept performance regression very low, with customers

typically taking a CPU hit of less than 5% out of the box (and all or some of that could usually be

clawed back later through implementing new function). Version 8 of DB2 for z/OS was somewhat

more painful for most customers, with the inefficiencies associated with the move to 64-bit

addressing typically increasing overall CPU usage by 5-10% and sometimes even more. That CPU

increase made it even more difficult than usual for many infrastructure managers to put together a

convincing business case for upgrading to V8, especially as many sites began to consider the upgrade

just as the current financial crisis began and IT budgets were squeezed. Although Version 9 has since

redressed the balance somewhat with modest CPU savings for many customers, it’s clear that IBM

was determined to provide a compelling cost case for moving to Version 10 in addition to some

intriguing new function. Because of this, CPU improvements were one of the major design goals for

© Triton Consulting Ltd 2011

DB2 10. Many savings are available “out of the box” with no application or database changes

required. There are even more available with some DBA/developer effort!

What CPU reductions can you expect for

� CPU reductions of 5

� Up to additional 10% CPU savings using new functions

� CPU reductions of up to 20% for new workloads

� For static SQL, REBIND typically required

Virtual Storage enhancements

In V8 IBM began a major project to transform DB2 into a 64

provide some scalability improve

DB2 10. Many savings are available “out of the box” with no application or database changes

. There are even more available with some DBA/developer effort!

What CPU reductions can you expect for transactions, queries, and batch?

CPU reductions of 5-10% for traditional workloads

Up to additional 10% CPU savings using new functions

CPU reductions of up to 20% for new workloads

For static SQL, REBIND typically required

a major project to transform DB2 into a 64-bit RDBMS. The groundwork was laid to

some scalability improvements but a lot of DBM1 objects remained below the 2GB bar

DB2 10. Many savings are available “out of the box” with no application or database changes

. The groundwork was laid to

ments but a lot of DBM1 objects remained below the 2GB bar.

© Triton Consulting Ltd 2011

In the DB2 9 release things a little, but only by another 10

300-500 threads per DB2 subsystem

DB2 10 moves 80-90% of the remaining objects above the

threads per subsystem. This is great news because less DB2 subsystems mean lower data sharing

overhead and less systems to manage and maintain. We also get m

objects such as dynamic statement cache

Security Extensions

In DB2 10 new authorities have been introduced to separate data administration and data access:

• Security Administrator (SECADM)

• System DBA (SYSTEM DBADM)

• Data Administrator (DATAACCESS)

• Performance Specialist (SQLADM)

New row and column data access policy controls

and apply to SELECT, INSERT, UPDATE and DELETE.

a little, but only by another 10-15% for most customers

500 threads per DB2 subsystem.

90% of the remaining objects above the bar, resulting in 5-10x improvement in

. This is great news because less DB2 subsystems mean lower data sharing

overhead and less systems to manage and maintain. We also get more space for critical storage

atement cache.

In DB2 10 new authorities have been introduced to separate data administration and data access:

Security Administrator (SECADM)

System DBA (SYSTEM DBADM)

Data Administrator (DATAACCESS)

Performance Specialist (SQLADM)

New row and column data access policy controls have been fully integrated into the database engine

and apply to SELECT, INSERT, UPDATE and DELETE.

15% for most customers - practical limit of

10x improvement in

. This is great news because less DB2 subsystems mean lower data sharing

ore space for critical storage

In DB2 10 new authorities have been introduced to separate data administration and data access:

have been fully integrated into the database engine

© Triton Consulting Ltd 2011

© Triton Consulting Ltd 2011

Temporal Data

At a recent IBM event (link to presentation)

closer look:

Most IT systems need to keep historical as well as current information.

requirements would have involved the DBA and application developers spending valuable time

creating and testing the code and

while minimizing any performance impact.

DB2 10 provides this functionality as part of the database engine, making DBAs and developers more

productive. All the DBA needs to do is ind

when they are created, and DB2 will automatically maintain the history whenever an update is made

to the data. Elegant SQL support allows the developer to query the database with an "as of" date,

which will return the information that was current at the specified time.

Preparing a table for temporal support is relatively simple. Start and end timestamp columns are

used by DB2 to determine when a given version of a row was valid, so these need to be added to the

table to be temporally enabled (this can be done via

columns can be specified as GENERATED ALWAYS

(link to presentation), Temporal Data proved to be a hot topic so

Most IT systems need to keep historical as well as current information. Previously, these kinds of

requirements would have involved the DBA and application developers spending valuable time

creating and testing the code and associated database design to support the historical perspective,

while minimizing any performance impact.

DB2 10 provides this functionality as part of the database engine, making DBAs and developers more

productive. All the DBA needs to do is indicate which tables/columns require temporal

when they are created, and DB2 will automatically maintain the history whenever an update is made

to the data. Elegant SQL support allows the developer to query the database with an "as of" date,

urn the information that was current at the specified time.

Preparing a table for temporal support is relatively simple. Start and end timestamp columns are

used by DB2 to determine when a given version of a row was valid, so these need to be added to the

table to be temporally enabled (this can be done via ALTER TABLE...ADD COLUMN

GENERATED ALWAYS (so that the relevant timestamps are

, Temporal Data proved to be a hot topic so let’s take a

Previously, these kinds of

requirements would have involved the DBA and application developers spending valuable time

associated database design to support the historical perspective,

DB2 10 provides this functionality as part of the database engine, making DBAs and developers more

temporal support

when they are created, and DB2 will automatically maintain the history whenever an update is made

to the data. Elegant SQL support allows the developer to query the database with an "as of" date,

Preparing a table for temporal support is relatively simple. Start and end timestamp columns are

used by DB2 to determine when a given version of a row was valid, so these need to be added to the

ALTER TABLE...ADD COLUMN). If required, the

(so that the relevant timestamps are

© Triton Consulting Ltd 2011

automatically populated by DB2) and

SELECT * statements submitted by

Once the columns have been added to the base table, an additional "history table" is created. This

has to have an identical structure to the base table (which can be easily accomplished v

TABLE….LIKE). Finally, an ALTER TABLE….ADD VERSIONING

versioning on the base table and identify the associated history table to DB2.

As shown the diagram below, DB2 then automatically maintains the history tab

in the temporal table. This is completely transparent to the developer, who codes INSERT/UPDATE/

DELETE SQL against the base table as usual.

When a row is updated (as shown at time T3 in the diagram), DB2 will store a version of the old

in the history table before updating the current row in the main table. Similarly, when a row is

deleted it is first copied to the history table before being removed from the main table. DB2

maintains system timestamps (the SYS_START and SYS_END colum

during which a given version of the row was current.

automatically populated by DB2) and IMPLICITLY HIDDEN (so that they won't show up on any

SELECT * statements submitted by application programs).

Once the columns have been added to the base table, an additional "history table" is created. This

has to have an identical structure to the base table (which can be easily accomplished v

ALTER TABLE….ADD VERSIONING statement is used to enable temporal

versioning on the base table and identify the associated history table to DB2.

As shown the diagram below, DB2 then automatically maintains the history table for updated rows

in the temporal table. This is completely transparent to the developer, who codes INSERT/UPDATE/

DELETE SQL against the base table as usual.

When a row is updated (as shown at time T3 in the diagram), DB2 will store a version of the old

in the history table before updating the current row in the main table. Similarly, when a row is

deleted it is first copied to the history table before being removed from the main table. DB2

maintains system timestamps (the SYS_START and SYS_END columns shown) to record the period

during which a given version of the row was current.

ow up on any

Once the columns have been added to the base table, an additional "history table" is created. This

has to have an identical structure to the base table (which can be easily accomplished via CREATE

statement is used to enable temporal

le for updated rows

in the temporal table. This is completely transparent to the developer, who codes INSERT/UPDATE/

When a row is updated (as shown at time T3 in the diagram), DB2 will store a version of the old row

in the history table before updating the current row in the main table. Similarly, when a row is

deleted it is first copied to the history table before being removed from the main table. DB2

ns shown) to record the period

© Triton Consulting Ltd 2011

The new "AS OF" clause in SQL SELECT statements allow the developer to see the data as it was at a

given point of time. In the example, the policy information at time T2 is required, which will return

the original address (A3) instead of the current address (A4). Note that the developer will be

completely unaware that the history table has been accessed in this case, as DB2 automatically

determines which version of the temporal table to get the data from.