IBM Data and AI

Welcome to the IBM Data and AI Ideas Portal for Clients!

We welcome and appreciate your feedback on IBM Data and AI Products to help make them even better than they are today!
Before you submit an idea, please perform a search first as a similar idea may have already been reported in the portal. If a related idea is not yet listed, please create a new idea and include with it a description which includes expected behavior as well as why having this feature would improve the service and how it would address your use case.
IBM Employees:
Clients:
  • Our team welcomes any feedback and suggestions you have for improving our offerings / products! This forum allows us to connect your offering / product improvement ideas with IBM product and engineering teams.

  • If you have not registered on this portal please click on the following link and register. To complete registration you will need to open the email you will receive from Aha to confirm your identity. http://ibm.biz/IBM-Data-and-AI-Portal-Register

Additional Information:
  • The shorter URL for this site is: https://ibm.biz/IBM-Data-and-AI-Ideas

  • To view our roadmaps: http://ibm.biz/Data-and-AI-Roadmaps

  • Reminder: This is not the place to submit defects or support needs, please use normal support channel for these cases

  • Please do not use the Ideas Portal for reporting bugs - we ask that you report bugs or issues with the product by contacting IBM support.

Allow table compression to be disabled for DGTTs and CGTTs

In short: OLTP applications frequently encounter performance issues because DB2 enables table compression by default for all DGTTs / CGTTs.

Details from a real-time example:

When inserting 40K rows to a DGTT, it takes 2 seconds.

When we immediately insert another 40K rows to the same DGTT using the same INSERT statement, it takes 0.08 seconds.

This has nothing to do with caching. It is because compression is enabled by default for all DGTTs / CGTTs and this is the overhead of generating the compression dictionary.

DB2 only generates the compression dictionary if a certain amount of data is inserted (based on my tests, this was around 25K rows). The same applies to CGTTs.

What this means is that any proc which inserts > 25K rows (approx.) into a DGTT / CGTT will incur this significant overhead every time it is executed.

So procs that should take 0.08 seconds to execute will consistently take 2 seconds.

Most OLTP applications create small (and short-lived) temporary tables and therefore don't benefit from table compression. Having the ability to disable table compression will significantly improve query performance in many cases.

  • Avatar32.5fb70cce7410889e661286fd7f1897de Guest
  • Sep 1 2020
  • Future consideration
Who would benefit from this IDEA? All applications using small DGTTs / CGTTs.
How should it work?

Preference 1: Add the COMPRESS clause to the “CREATE/DECLARE GLOBAL TEMPORARY TABLE” syntax.

e.g.

DECLARE GLOBAL TEMPORARY TABLE SESSION.MY_DGTT (ACCOUNT CHAR (9) NOT NULL) ON COMMIT PRESERVE ROWS COMPRESS NO

Preference 2: Introduce an instance-level or DB-level configuration parameter or registry setting to disable table compression for all DGTTs / CGTTs.

Idea Priority High
Priority Justification Frequent performance issues for OLTP workloads relying on DGTTs / CGTTs.
Customer Name Morgan Stanley
  • Attach files

NOTICE TO EU RESIDENTS: per EU Data Protection Policy, if you wish to remove your personal information from the IBM ideas portal, please login to the ideas portal using your previously registered information then change your email to "anonymous@euprivacy.out" and first name to "anonymous" and last name to "anonymous". This will ensure that IBM will not send any emails to you about all idea submissions