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.

4.1 <strong>DB2</strong> CPU considerations<br />

With every new release of <strong>DB2</strong>, per<strong>for</strong>mance is always a challenge. <strong>DB2</strong> V8 is no different.<br />

For those applications not taking advantage of any V8 per<strong>for</strong>mance enhancements, some<br />

CPU time increase is unavoidable to support a dramatic improvement in user productivity,<br />

availability, scalability, portability and family consistency of <strong>DB2</strong>. In particular, enhancements<br />

in:<br />

► DBM1 virtual storage constraint relief with 64-bit addressing. A number of <strong>DB2</strong> structures,<br />

<strong>for</strong> example, buffer pools, have moved above the 2 GB bar.<br />

► Long names and long index keys. Many <strong>DB2</strong> names change from CHAR(8) or<br />

VARCHAR(18) to VARCHAR(128). Maximum index key size also moves from 255 to 2000<br />

bytes.<br />

► Longer and more complex SQL statements. The maximum SQL statement size moves<br />

from 32 KB to 2 GB.<br />

► Extended support <strong>for</strong> Unicode. The <strong>DB2</strong> catalog is now Unicode and you can combine<br />

multiple CCSIDs in the same SQL statement.<br />

In this section we discuss general subsystem per<strong>for</strong>mance considerations and what you may<br />

see in V8 in terms of CPU utilization.<br />

As processor power continues to improve, linear scalability, or the ability to exploit increasing<br />

processor power without encountering a bottleneck that prevents the full CPU usage,<br />

becomes more important. Bigger buffer pools and cache reduce the I/O bottleneck and CPU<br />

overhead. Although most of the thread-related storage is still below the 2 GB bar, more<br />

concurrent active threads could be supported in V8 as other storage areas are moved above<br />

the 2 GB bar. However, whether more threads can be supported in V8 critically really<br />

depends on how much thread storage is being used in V7. If the thread storage takes up the<br />

majority of virtual storage in V7, there is no relief in V8.<br />

Exploiting bigger and faster hardware without premature constraint is a major driver to the<br />

virtual storage constraint relief enhancements in <strong>DB2</strong> V8. For example, the z990 (GA in<br />

05/03) is:<br />

► 1.3 to 1.6 times higher MIPS compared to z900 turbo<br />

► 1.8 to 2 times higher MIPS compared to z900<br />

► 256 GB real storage up from 64 GB <strong>for</strong> z900<br />

From V1R1 1984 to the present, real storage usage has grown in <strong>DB2</strong> at about 20 to 30% per<br />

release to support enhancements in per<strong>for</strong>mance and scalability, more and bigger buffer<br />

pools, larger sort pools, and more concurrent threads. <strong>DB2</strong> V8 continues this trend, by<br />

removing bottlenecks which would have prevented the exploitation of bigger real storage.<br />

64-bit addressing has brought its own per<strong>for</strong>mance challenges to <strong>DB2</strong>. For example, 64-bit<br />

instructions are typically 50% bigger than 31-bit instructions. 64-bit addresses are twice as<br />

big as 31-bit addresses. So, hardware registers and software control blocks which contain<br />

virtual addresses all need to be bigger. All these bigger instructions and bigger registers take<br />

longer to load and execute, (more bits and bytes must be staged into registers, destaged and<br />

moved around the hardware). Studies have shown some 64-bit instructions can take as much<br />

as 15% more CPU to execute. Other studies have shown that the same path length coded in<br />

64-bit mode can take as much as 10% more CPU than coded in 31-bit mode.<br />

The biggest difference is when 31-bit pointers have to be converted to 64-bit be<strong>for</strong>e being<br />

used in AMODE(64). That overhead does not exist in V7, but is unavoidable since not all<br />

components have been converted to 64-bit. Finally, it should be pointed out that the Unicode<br />

Chapter 4. <strong>DB2</strong> subsystem per<strong>for</strong>mance 129

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

Saved successfully!

Ooh no, something went wrong!