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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Trans/second - higher is better<br />

250<br />

200<br />

150<br />

100<br />

50<br />

0<br />

9 %<br />

KeepDynamic YES<br />

20 %<br />

ITR AIX ITR z/<strong>OS</strong><br />

keepdyn no<br />

keepdyn yes<br />

Figure 7-18 <strong>DB2</strong> Universal Driver - KEEPDYNAMIC YES<br />

SpecJApp2002<br />

WebSphere/AIX V502- <strong>DB2</strong> <strong>for</strong> z/<strong>OS</strong> V8<br />

ITR = tps/cpu%*100<br />

CPU is saved on the client (WebSphere) and in <strong>DB2</strong> on the server. Throughput improved with<br />

9% on the client and 20% on the <strong>DB2</strong> server.<br />

In order to benefit from per<strong>for</strong>mance improvements the following PTFs/APARs should be<br />

applied: PQ86787/UQ87049, PQ87126/UQ88971 and PQ87129/UQ87633.<br />

Conclusion<br />

The statements are saved on thread level and can consume a significant amount of storage.<br />

Type 2 distributed threads cannot turn inactive and <strong>DB2</strong> resources <strong>for</strong> distributed threads are<br />

not freed at commit. There<strong>for</strong>e this is not recommended <strong>for</strong> storage constrained systems.<br />

Recommendation<br />

KEEPDYNAMIC(YES) is recommended <strong>for</strong> applications with a limited amount of SQL<br />

statements that are executed very often. It is not recommended <strong>for</strong> applications with a large<br />

number of SQL statements that are executed infrequently.<br />

LOB streaming<br />

In prior releases, Universal Clients and Linux, UNIX, and Windows servers had to read the<br />

entire LOB to determine its length prior to flowing it to <strong>DB2</strong>.<br />

LOB streaming, activated by the fullyMaterializeLobData property, allows the <strong>DB2</strong> universal<br />

client or a <strong>DB2</strong> <strong>for</strong> Multiplat<strong>for</strong>ms server to not know the total length of a LOB value prior to<br />

sending a LOB value. This improves per<strong>for</strong>mance by eliminating the need to read the entire<br />

LOB to determine its length prior to sending the LOB value. <strong>DB2</strong> continues to provide the total<br />

length of a LOB value, but it is now able to read in the LOB immediately without knowing the<br />

exact length up-front.<br />

The main benefit is per<strong>for</strong>mance. But there is another advantage. It is not always possible to<br />

determine a LOB's attributes (like length and nullness) up-front, <strong>for</strong> example when a client is<br />

acting on behalf of a CLI application that is being supplied with chunks of a LOB value in a<br />

piecemeal fashion using the SQLPutData API. There<strong>for</strong>e this improvement provides a more<br />

flexible mechanism whereby the sender can defer indicating the nullness and/or the length of<br />

a LOB value until a chunk is ready to be sent.<br />

Chapter 7. Networking and e-business 305

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

Saved successfully!

Ooh no, something went wrong!