suche 36x36
  • CURSOR Service Distribution
           
     

    CURSOR Service Distribution

    24x7 Always Up

    pfeil
  • Logistics and transportation
           
     

    Logistics and transportation

    24x7 Always Up

    pfeil
  • Industrial environments
           
     

    Industrial environments

    24x7 Always Up

    pfeil
  • Trade and commerce
           
     

    Trade and commerce

    24x7 Always Up

    pfeil
  • Online shopping
           
     

    Online shopping

    24x7 Always Up

    pfeil
  • We care about your databases
           
     

    We care about your databases

    24x7 Always Up

    pfeil
 

Erik Stahlhut

CURSOR Service Distribution

We keep your IBM databases running

             
 

Monitoring Monitoring

Monitoring

  • Companies with existentially important databases trust in our Informix Monitoring. We prevent system failures before they occur.

  • Automated monitoring around the clock. Early detection of bottlenecks based on history data with our CURSOR Admin-Scout.

  • Administration for all installation sizes. Standard, remote or standby administration, up to 24x7 availability for systems with high availability.

  • Individual adjustments to the service levels of our customers with short response times and personal contact persons in support.

Discover more about Informix Monitoring with the CURSOR Service Distribution!
 

ServiceService

Service

  • Requirements from all areas of data management. Service packages or individually agreed projects like:
    • Setup of replications or high availability systems;
    • Performance, runtime analysis, tuning;
    • Release, platform or cloud migration;
    • Access control, encryption, archiving.
  • CURSOR Service Distribution is a long-standing IBM High-Value Service Provider for IBM Informix.

  • Specially for Informix we offer additional online seminars, workshops and training courses.

Information about service and support, so feel free to contact us with your project!
 

SupportSupport

Support

  • Request for support services for IBM databases. Our customers benefit from the competence of more than 25 years of Informix support and system-oriented development of database tools.

  • In case of support we are the first and central contact persons. We have a direct line to the IBM and HCL support departments and are available for our customers with 24x7 agreements around the clock.

  • Even Informix customers without active IBM product maintenance can take advantage of our first-aid support.

Book a support ticket on our website or just call us!
 
 
 
 

IBM Software

for manufacturers

and technology partners

IBM Embedded Solution Agreement (ESA)
integration of IBM software into your solution!

  Service
  • Integrate IBM software into your solution!

  • Benefit from the power of IBM software, take advantage of the attractive conditions for IBM licenses and maintenance!

  • The employees of CURSOR Service Distribution have twenty years of experience in indirect sales of IBM software (OEM/ASL/ESA licensing). We show you how to become an IBM ESA Business Partner!

esa bp werden blue 1000x100

 
 
 
 

CompetenceService

in Informix Administration

 
 

the CURSOR

Admin-Scout for Informix

esa bp werden blue 1000x100

esa bp werden blue 1000x100

 

 

  • The Informix tool right from CURSOR Informix Support.

  • Developed by administrators for administrators.

    With a background of over 25 years of Informix support, administration and system-oriented programming, we have been developing and distributing the Admin Scout since 2015.

  • By our Managed Service approach, the Admin Scout is suitable for almost all application areas of the Informix database system. Our customers are IT departments and administrators in commerce, banks, universities, trade and industry.

 
 
 
 

About us

the CURSOR Service Distribution

  • High-Value Service Provider for IBM Informix.

  • Distribution for IBM Data-Management Software (OEM/ASL/ESA licensing for ISVs).

CURSOR Service Distribution is a business unit of CURSOR Software AG, resulting from the acquisition of the Informix and development tool specialist "Nonne & Schneider" at the end of 2005.

We offer extensive technical services for IBM Informix, and as a high-value service provider we are the direct contact for all our customers' service needs for these databases.

Our services are independent from licensing through our company. Well-known customers rely on our monitoring and use our tools, while licensing and update maintenance are contracted directly with IBM.

 

CURSOR Software AG

For over 25 years CURSOR has been developing and marketing CRM solutions for the upper middle class and large concerns.

  • Together.
    Together with you we will lead your CRM project to success. Our experts offer comprehensive services from a single source: software development, consulting, software introduction, training, support - and the ongoing optimization of your CRM system.

  • Inspiring.
    We "live" CRM and want to inspire you with CRM software and services Made in Germany. The benchmark for this is the enthusiasm and loyalty of our customers - and their customers.

  • Successful.
    For 30 years the name CURSOR has stood for excellent customer and business process management - CRM and BPM. We measure our success by the satisfaction and market success of our customers. Learn more about successful CRM projects directly from our customers.

 
 
Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

DB2 - Problem description

Problem IC62710 Status: Closed

DB2 QUERY REWRITE MAY NOT TAKE COMPLETE ADVANTAGE OF REFERENTIAL INTEGRITY
TO OPTIMIZE A QUERY

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
Queries containing joins based on referential integrity (RI) 
defined in the database, i.e., primary, unique and foreign keys 
(PK, UK and FK), are used by the DB2 Query ReWrite engine (QRW) 
to optimize the query graph (QGM) for optimal query performance. 
. 
This usually allows dropping of PK tables from joins used in the 
query. However, presence of certain constructs in the query may 
cause QRW to optimize the QGM in such a way that PK tables that 
are droppable given the RI may not be dropped, and consequently 
may adversely affect query performance. 
. 
For example, consider the following scenario: 
-- Table and Primary Key DDL 
CREATE TABLE SON (DAD_ID INTEGER NOT NULL 
                  CONSTRAINT PK_SON PRIMARY KEY, 
-- PK 
                  MOM_ID INTEGER NOT NULL, 
                  ID INTEGER NOT NULL WITH DEFAULT 0, 
                  AGE INTEGER NOT NULL WITH DEFAULT 0 
                 ); 
. 
CREATE TABLE MOM (ID INTEGER NOT NULL 
                  CONSTRAINT PK_MOM PRIMARY KEY 
-- PK 
                 ); 
. 
CREATE TABLE DAD (ID INTEGER NOT NULL 
                  CONSTRAINT PK_DAD PRIMARY KEY, 
-- PK 
                  ANCSTR_ID INTEGER NOT NULL 
                 ); 
. 
CREATE TABLE GRANDPA (ID INTEGER NOT NULL 
                      CONSTRAINT PK_GRANDPA PRIMARY KEY 
-- PK 
                     ); 
. 
CREATE TABLE CHILDREN_OF (ID INTEGER NOT NULL); 
. 
-- Foreign Key DDL 
ALTER TABLE SON 
ADD CONSTRAINT FK_SON_MOM FOREIGN KEY (MOM_ID) 
REFERENCES MOM (ID) 
ON DELETE CASCADE 
ON UPDATE NO ACTION 
ENFORCED 
ENABLE QUERY OPTIMIZATION; 
. 
ALTER TABLE SON 
ADD CONSTRAINT FK_SON_DAD FOREIGN KEY (DAD_ID) 
REFERENCES DAD (ID) 
ON DELETE CASCADE 
ON UPDATE NO ACTION 
ENFORCED 
ENABLE QUERY OPTIMIZATION; 
. 
ALTER TABLE DAD 
ADD CONSTRAINT FK_DAD_GRANDPA FOREIGN KEY (ANCSTR_ID) 
REFERENCES GRANDPA (ID) 
ON DELETE CASCADE 
ON UPDATE NO ACTION 
ENFORCED 
ENABLE QUERY OPTIMIZATION; 
. 
ALTER TABLE CHILDREN_OF 
ADD CONSTRAINT FK_CHILDRENOF_GP FOREIGN KEY (ID) 
REFERENCES GRANDPA (ID) 
ON DELETE CASCADE 
ON UPDATE NO ACTION 
ENFORCED 
ENABLE QUERY OPTIMIZATION; 
. 
-- Query 
SELECT SON.AGE 
FROM   SON, 
       MOM, 
       DAD, 
       GRANDPA 
WHERE  SON.ID         = 1 
   AND SON.MOM_ID     = MOM.ID 
   AND SON.DAD_ID     = DAD.ID 
   AND DAD.ANCSTR_ID  = GRANDPA.ID 
 AND GRANDPA.ID     IN ( SELECT CHILDREN_OF.ID 
                           FROM   CHILDREN_OF 
                         ); 
. 
Due to the presence of the IN subquery predicate, QRW alters the 
QGM in such a way that the droppable PK tables in the query are 
not dropped (this can be determined by looking at the optimized 
statement section of the formatted EXPLAIN output of the query). 
In this case, these are the GRANDPA and MOM tables. 
. 
The enhancement in this APAR will attempt to address such issues 
on a best-effort basis by giving extra special consideration to 
the RI when altering the QGM in QRW.
Problem Summary:
Users Affected : All 
Problem Description : 
DB2 Query Rewrite may not take complete advantage of referential 
integrity to optimize a query. 
Problem Summary : 
Queries containing joins based on referential integrity (RI) 
defined in the database, i.e., primary, unique and foreign keys 
(PK, UK and FK), are used by the DB2 Query ReWrite engine (QRW) 
to optimize the query graph (QGM) for optimal query performance. 
This usually allows dropping of PK tables from joins used in the 
query. However, presence of certain constructs in the query may 
cause QRW to optimize the QGM in such a way that PK tables that 
are droppable given the RI may not be dropped, and consequently 
may adversely affect query performance. 
For example, consider the following scenario: 
-- Table and Primary Key DDL 
CREATE TABLE SON (DAD_ID INTEGER NOT NULL 
                  CONSTRAINT PK_SON PRIMARY KEY, 
-- PK 
                  MOM_ID INTEGER NOT NULL, 
                  ID INTEGER NOT NULL WITH DEFAULT 0, 
                  AGE INTEGER NOT NULL WITH DEFAULT 0 
                 ); 
CREATE TABLE MOM (ID INTEGER NOT NULL 
                  CONSTRAINT PK_MOM PRIMARY KEY 
-- PK 
                 ); 
 
CREATE TABLE DAD (ID INTEGER NOT NULL 
                  CONSTRAINT PK_DAD PRIMARY KEY, 
-- PK 
                  ANCSTR_ID INTEGER NOT NULL 
                 ); 
CREATE TABLE GRANDPA (ID INTEGER NOT NULL 
                      CONSTRAINT PK_GRANDPA PRIMARY KEY 
-- PK 
                     ); 
CREATE TABLE CHILDREN_OF (ID INTEGER NOT NULL); 
. 
-- Foreign Key DDL 
ALTER TABLE SON 
ADD CONSTRAINT FK_SON_MOM FOREIGN KEY (MOM_ID) 
REFERENCES MOM (ID) 
ON DELETE CASCADE 
ON UPDATE NO ACTION 
ENFORCED 
ENABLE QUERY OPTIMIZATION; 
 
ALTER TABLE SON 
ADD CONSTRAINT FK_SON_DAD FOREIGN KEY (DAD_ID) 
REFERENCES DAD (ID) 
ON DELETE CASCADE 
ON UPDATE NO ACTION 
ENFORCED 
ENABLE QUERY OPTIMIZATION; 
ALTER TABLE DAD 
ADD CONSTRAINT FK_DAD_GRANDPA FOREIGN KEY (ANCSTR_ID) 
REFERENCES GRANDPA (ID) 
ON DELETE CASCADE 
ON UPDATE NO ACTION 
ENFORCED 
ENABLE QUERY OPTIMIZATION; 
ALTER TABLE CHILDREN_OF 
ADD CONSTRAINT FK_CHILDRENOF_GP FOREIGN KEY (ID) 
REFERENCES GRANDPA (ID) 
ON DELETE CASCADE 
ON UPDATE NO ACTION 
ENFORCED 
ENABLE QUERY OPTIMIZATION; 
-- Query 
SELECT SON.AGE 
FROM   SON, 
       MOM, 
       DAD, 
       GRANDPA 
WHERE  SON.ID         = 1 
   AND SON.MOM_ID     = MOM.ID 
   AND SON.DAD_ID     = DAD.ID 
   AND DAD.ANCSTR_ID  = GRANDPA.ID 
 AND GRANDPA.ID     IN ( SELECT CHILDREN_OF.ID 
                           FROM   CHILDREN_OF 
                         ); 
Due to the presence of the IN subquery predicate, QRW alters the 
QGM in such a way that the droppable PK tables in the query are 
not dropped (this can be determined by looking at the optimized 
statement section of the formatted EXPLAIN output of the query). 
In this case, these are the GRANDPA and MOM tables. 
The enhancement in this APAR will attempt to address such issues 
on a best-effort basis by giving extra special consideration to 
the RI when altering the QGM in QRW.
Local Fix:
No general workaround exists, however, potential workarounds may 
be available on a query by query basis.
available fix packs:
DB2 Version 9.7 Fix Pack 1 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 2 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Solution
Problem was first fixed in V9.7 FP1.
Workaround
No general workaround exists, however, potential workarounds may 
be available on a query by query basis.
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
21.08.2009
15.12.2009
15.12.2009
Problem solved at the following versions (IBM BugInfos)
9.7.FP1
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.1 FixList