在某个Oracle 11.2环境中,我观察到不必要的提交,例如是否承诺空交易昂贵?
-- some updates/inserts etc.
commit;
select * from mytable where somecond = 23;
commit;
甚至:
update mytable set foo = '42';
commit;
commit;
因此,在这两个例子中的第二个承诺是不必要的,因为交易是“空” - 没有什么承诺。
问题是:这些不必要的提交有多昂贵?
是否Oracle数据库'智能'足以检测这种空的事务并用NOPs(无)替代那些不必要的提交?
背景:这些冗余提交有时似乎来自特定框架层,程序员没有意识到“隐藏”逻辑 - 或者有时他们只是疏忽。根据数据库的性价比(根据数据库性能),以高优先级修复代码是有意义的。
取决于您是否考虑网络往返速度慢或不慢。 – eckes
我想知道您是否从正确的方向接近性能问题。 –
@JeffreyKemp,你是什么意思? – maxschlepzig