在Windows上使用DB2中的大部分CPU的SYSIBM.SQLSTATISTICS和SYSIBM.SQLPRIMARYKEYS

voj3qocg  于 2022-12-04  发布在  DB2
关注(0)|答案(1)|浏览(100)

我在Windows服务器上有一个相当忙碌的DB2 - 9.7,修复包11。
包高速缓存中所有查询所使用的CPU时间中,约有60%被以下两条语句占用:

CALL SYSIBM.SQLSTATISTICS(?,?,?,?,?,?)
CALL SYSIBM.SQLPRIMARYKEYS(?,?,?,?)

我对物理调优相当在行,也花了很多时间在这个系统的SQL调优上。应用程序都是自定义的,我也花了很多时间在培训开发人员上。
我的印象是这两个存储过程可能是ODBC调用的东西?阅读它们的描述,它们看起来也像是完全不必要的东西。应用程序不需要知道表的主键就可以查询它!
我能告诉开发人员做些什么来消除/减少这些执行,或者缓存信息,这样他们就不会对数据库执行数百万次,消耗如此多的CPU?或者我能在数据库级别做些什么来减少它们的影响?

xt0899hw

xt0899hw1#

6.5几年后,我自己的问题得到了答案。这是使用ORM的副作用。它的部分功能是发现数据库模式。Rails也有类似的工作负载。在Rails中,您可以通过使用schema cache来避免这一点。这在大规模扩展时变得特别重要。不确定是否有其他ORM的等效项,但我希望如此!

相关问题