Sunday , December 22 2024

The SYSIBM.SYSSTATFEEDBACK table introduced in Db2 for z/OS V11 Part 2

 

In the previous post we discussed how it is possible to extract your Integer values from IBM’s new Db2 table as of Db2 for z/OS V11 called SYSIBM.SYSSTATFEEDBACK.  The table verifies if statistics were collected and if the correct statistics were collected.

In Part 2, I would like to cover the format of the RUNSTATS statements that needs to be used when combining the TYPE and REASON columns of records in the SYSIBM.SYSSTATFEEDBACK table. If the RUNSTATS statements are correct, Db2 will delete the row(s) from table SYSIBM.SYSSTATFEEDBACK.  If the format is incorrect, the row will remain, and you would need to modify the format or add/remove RUNSTATS parameters.

I have discovered that the following RUNSTATS statements have worked every time when run with the correct TYPE and REASON combination.

 

Many of our smaller tables re-appeared in the SYSIBM.SYSSTATFEEDBACK table with REASON = CONFLICT.

I suspected that the optimizer found that the rows in the table did not match the RUNSTATS and then performed a TABLESPACE scan.  This happened with many of our volatile tables where rows were inserted and deleted randomly at any time.

I then ran an ALTER TABLE TBCREATOR . TBNAME VOLATILE ; command on those tables which forced the optimizer to use the index every time to get to the data instead of using the “outdated” RUNSTATS.  This solved the problem.

 

The following SQL can be run to get table row cardinality of each table found in SYSIBM.SYSSTATFEEDBACK:

 

Loading

About Ian Sampson

Leave a Reply

Your email address will not be published. Required fields are marked *