DB2 - Problem description
Problem IC73781 | Status: Closed |
JUST-IN-TIME STATISTICS MAY BE INACCURATE FOR PARTITIONED INDEXES ON RANGE PARTITIONED TABLES | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
The index manager attempts to keep up-to-date values for full key cardinality and the number of leaf pages for the optimizer's Just-In-Time statistics feature. When we issue a CREATE or REORG INDEX command, we get accurate values and then we keep them up to date during insert/update/delete activities. When RUNSTATS is executed we update these values with accurate values -- this is important as these values can degrade over time as they are only hardened to disk periodically. The code to update the values during RUNSTATS was broken for partitioned indexes. Without this fix, instead of having correct values in each index partition's control block, we have 0 for each partition, but correct summarized values stored in the last index partition's control block. When the optimizer gets the Just-In-Time statistics from the index manager for a partitioned index, it will choose a partition that is not the last partition and instead of getting valid values for these stats, it will get zeros and will think that the index scan will perform much faster than it actually will. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All users * **************************************************************** * PROBLEM DESCRIPTION: * * For the optimizer's Just-In-Time statistics feature, the * * index manager attempts to keep up-to-date values for full * * key cardinality and the number of leaf pages. When we issue * * a CREATE or REORG INDEX command, we get accurate values and * * then we keep them up to date during insert/update/delete * * activities. When RUNSTATS is executed we update these * * values with accurate values -- this is important as these * * values can degrade over time as they are only hardened to * * disk periodically. The code to update the values during * * RUNSTATS was broken for partitioned indexes. Without this * * fix, instead of having correct values in each index * * partition's control block, we have 0 for each partition, but * * correct summarized values stored in the last index * * partition's control block. When the optimizer gets the * * Just-In-Time statistics from the index manager for a * * partitioned index, it will choose a partition that is not * * the last partition and instead of getting valid values for * * these stats, it will get zeros and will think that the index * * scan will perform much faster than it actually will. * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 9.7.0.4. * **************************************************************** | |
Local Fix: | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows | |
Solution | |
The problem is fixed in DB2 9.7.0.4. | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 11.01.2011 29.04.2011 29.04.2011 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.0.4 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.4 |