我使用DB2 9.7.5 64位。服务器有足够的内存但没有集群。
我需要进行大量计算:在我的数据库中计算几个(大约20个)比率。其中一些可能需要长达25秒。
结果存储在结果表中。
现在我有几个解决方案(作为一项政策,我们排除了存储过程)。
我从java客户端OR一次调用一个比率 我在多线程java客户端中调用了几个比率。
我的假设是,从多线程调用是没用的,因为我的数据库是瓶颈。但我并不完全确定db引擎真正为1次查询提供了100%的cpu。我认为引擎必须能够在多个查询之间共享其CPU功能。
我目前正在阅读IBM数据手册,但希望得到您的反馈。
非常感谢。
答案 0 :(得分:0)
我需要进行大量计算:在我的数据库中计算几个(大约20个)比率。其中一些可能需要长达25秒。
25秒不一定是坏事。也许它是一个很好的结果,取决于你的计算
现在我有几个解决方案(作为一项政策,我们排除了存储过程)。
存储过程不是邪恶的,你只需要知道如何安全地使用它们
我的假设是,从多线程调用是没用的,因为我的数据库是瓶颈。但我并不完全确定db引擎真正为1次查询提供了100%的cpu。我认为引擎必须能够在多个查询之间共享其CPU功能。
java中的多线程永远不会在心中(只要保持线程安全),在你进行大量计算时尤其有用。 我不使用db2所以我不知道多线程有多好,但如果它的单线程我怀疑它将达到100%的CPU使用率。你应该检查你的db2的conf文件稍微调整一下 另请阅读有关IBM DB2 clustering
的文章我还建议使用data warehouse工具来分析你的脚本性能againest db2
祝你好运答案 1 :(得分:0)
看看Materialized Query Tables。如果您正在使用的是报告,特别是不需要绝对最新的信息,您可以设置MQT,其中包含重要的部分,例如每小时版本。