我在Windows服务器上有一个相当繁忙的DB2 - 9.7,修订包11。
以下两个语句正在使用包缓存中所有查询使用的大约60%的CPU时间:
CALL SYSIBM.SQLSTATISTICS(?,?,?,?,?,?) CALL SYSIBM.SQLPRIMARYKEYS(?,?,?,?)
我在物理调优方面相当不错,并且花了很多时间在这个系统上进行SQL调优。应用程序都是自定义的,教育开发人员也是我花时间的东西。
我觉得这两个存储过程可能是ODBC调用的东西?阅读他们的描述,他们看起来似乎完全没有必要做的工作。应用程序不需要知道表的主键就可以查询它!
有什么我可以告诉我的开发人员要做的事情要么消除/减少这些信息的执行,要么缓存信息,这样他们就不会对数据库执行数百万次并且吃掉这么多CPU?或者我可以在数据库级别做些什么来减少它们的影响?