19.06.2013 Views

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

NFM in data sharing because some data sharing-related enhancements are automatically<br />

taken advantage of in NFM. Most of the improvement can be attributed to the new locking<br />

protocol level 2. For more in<strong>for</strong>mation on improvements in NFM <strong>for</strong> data sharing<br />

environments, see Chapter 8, “Data sharing enhancements” on page 319.<br />

The real per<strong>for</strong>mance difference in NFM comes from the ability to exploit new functions not<br />

available in CM, <strong>for</strong> example, materialized query tables.<br />

2.6.1 Plans and packages<br />

2.6.2 <strong>DB2</strong> catalog<br />

There is overhead in NFM <strong>for</strong> plans, packages, and DBDs. The representations of these<br />

objects are different between <strong>DB2</strong> V7 and V8. The costs come from having to re<strong>for</strong>mat control<br />

structures to match the release and in converting between EBCDIC and Unicode.<br />

Once you are in NFM, <strong>DB2</strong> BIND and REBIND write plans and packages to the <strong>DB2</strong> catalog<br />

and directory in Unicode.<br />

Whenever <strong>DB2</strong> accesses plans, packages, or DBDs that are not in <strong>DB2</strong> V8 <strong>for</strong>mat, <strong>DB2</strong> must<br />

expend some extra CPU to convert them into <strong>DB2</strong> V8 <strong>for</strong>mat. This is always true in CM, but<br />

continues to be true even in NFM. In order <strong>for</strong> the plan or package to reside in the catalog in<br />

<strong>DB2</strong> V8 <strong>for</strong>mat, but most important, to enable all <strong>DB2</strong> functions, you just do a rebind or a bind.<br />

Important: To get around any re<strong>for</strong>matting costs and enable <strong>DB2</strong> V8 functions (such as<br />

NOT PADDED and index only access, the additional ability to use indexes, MQTs, IS NOT<br />

DISTINCT, and more), rebind your plans and packages in V8 NFM.<br />

When you migrate to NFM, the catalog changes from EBCDIC to Unicode. The conversions<br />

happen in ENFM, and it is an important difference <strong>for</strong> a few customers. A few customers stay<br />

in ENFM, even though all catalog tables are in Unicode. Some may fall back from NFM to<br />

ENFM. The other significant difference is the capability of running during ENFM.<br />

Important: Once you are in NFM, the collating sequence of the <strong>DB2</strong> catalog changes<br />

since the catalog is now converted to Unicode. You may get different results when using<br />

range predicates against the <strong>DB2</strong> catalog.<br />

Other incompatibilities are described in the Premigration activities section of the <strong>DB2</strong> <strong>UDB</strong> <strong>for</strong><br />

z/<strong>OS</strong> <strong>Version</strong> 8 Installation Guide, GC18-7418-02.<br />

For instance, In NFM, an identifier that was valid in <strong>DB2</strong> V7 might be flagged as too long in<br />

<strong>DB2</strong> V8 and you receive message DSNH107I (during precompilation) or SQLCODE -107<br />

(otherwise).<br />

The first 128 code points of Unicode match the ASCII code page, so the ordering is different<br />

when you use an ORDER BY in an SELECT against the catalog.<br />

2.6.3 Precompiler NEWFUN option<br />

Whenever a plan or package, whose last BIND was prior to <strong>DB2</strong> V8 NFM, is rebound, <strong>DB2</strong><br />

converts the EBCDIC to Unicode be<strong>for</strong>e proceeding. This is always true in CM, and continues<br />

to be true even in NFM. To alleviate this cost, the plan or package must be bound with a<br />

DBRM produced by the precompiler using NEWFUN(YES). The default <strong>for</strong> NEWFUN<br />

switches to YES from NO <strong>for</strong> the precompiler once you switch to NFM.<br />

Chapter 2. Per<strong>for</strong>mance overview 23

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!