|
原帖由 newkid 于 2009-7-5 22:03 发表 ![]()
你哪里看到我反对游标缓存了?我的意思:
1. 游标缓存比反复关闭、打开更好;但是! 能用一个游标(一个SQL)解决,就比多个游标(多个SQL)更快,哪怕你这多个游标是缓存过的!
2. 游标缓存在PL/SQL中一点都不稀罕,而且对程序员是透明的,你即使关闭了游标也会被缓存。
关于支持多数据库的通用系统,我前面也表过态了:
1.以你的售票模块为例,你换个数据库就得再写一遍。到头来和用存储过程的代价是差不多的。所谓的通用并不存在。
2.你前面的代码竟然以ROWID作主键,这是个低级错误,但愿你改过来了。
3.假设真的做出了通用的系统,那么必定以牺牲性能为代价,你用不到数据库的高级特性。
4.在现实中,数据库是作为应用的一个部件来推的。你推你的售票系统,同时必定推了TUXEDO, 推了ORACLE; 如果客户坚持要把ORACLE换掉,他同样有理由要求你改用JAVA.
一头雾水。我哪里说你反对游标缓存了?我只说,游标不关闭能提高效率。
我再写几遍也是平台,与应用没关系的。我写几个平台的DAU也不是完全为了这个应用,做什么都行,反正是平台。
我们谁也没推倒任何平台,只不过某些部分可能必须要使用XXX,但是不论这部分的数据来自XXX或ORACLE,应用代码无需改变。
就像ORACLE,要做UNIX的,AIX的,Z/OS的等等。
DAU就没牺牲什么性能,不比你慢啊!
对了,还是那个怪异问题。存储过程确实没有此问题。此问题为OCI所独有,肯定是OCI代码里有什么问题。
OCIlib接口同样存在。
[ 本帖最后由 yulihua49_cu 于 2009-7-6 16:26 编辑 ] |
|