我在Windows服务器上有一个相当忙碌的DB2 - 9.7,修复包11。
包高速缓存中所有查询所使用的CPU时间中,约有60%被以下两条语句占用:
CALL SYSIBM.SQLSTATISTICS(?,?,?,?,?,?)
CALL SYSIBM.SQLPRIMARYKEYS(?,?,?,?)
我对物理调优相当在行,也花了很多时间在这个系统的SQL调优上。应用程序都是自定义的,我也花了很多时间在培训开发人员上。
我的印象是这两个存储过程可能是ODBC调用的东西?阅读它们的描述,它们看起来也像是完全不必要的东西。应用程序不需要知道表的主键就可以查询它!
我能告诉开发人员做些什么来消除/减少这些执行,或者缓存信息,这样他们就不会对数据库执行数百万次,消耗如此多的CPU?或者我能在数据库级别做些什么来减少它们的影响?
1条答案
按热度按时间xt0899hw1#
6.5几年后,我自己的问题得到了答案。这是使用ORM的副作用。它的部分功能是发现数据库模式。Rails也有类似的工作负载。在Rails中,您可以通过使用schema cache来避免这一点。这在大规模扩展时变得特别重要。不确定是否有其他ORM的等效项,但我希望如此!