关于INFORMIX数据库存储过程的几点疑问,高手请进!

woye2008 2011-07-13 01:13:18
1,在编写INFORMIX存储过程时,dbaccess databasae进入 数据库,直接执行存储过程,如果没有在存储过程中没有begin work却执行的rollback ,好像会提示“not transaction” ,报错,已经修改的数据没有回滚,而是用ESQL的方式调用同样的存储过程没有任何错误信息,可以正常回滚,为什么?

2,在ORACLE数据库中,尽量使用大写,可以提成运行效率,在INFORMIX数据库中呢?大写和小写哪个效率跟高?还是没有影响?是小写吗?

3,INFORMIX在处理存储过程时,是不是不支持多线程?INFORMIX执行存储过程的机制是怎样的?如果有多个请求,是不是以队列的形式进行等待,当前事物处理完了才能进行下一次请求的处理,串行机制?

4,当从10.41.24.58上的yqhdb1@uin_58db.procedure1调用10.41.24.53上的yqhdb2@uin_53db.procedure2时,需要同时配置53和58两台服务器的信任关系和两个INFORMIX数据库的信任关系,这样的信任关系从安全性上来讲是否可靠?

5,从yqhdb1@uin_58db.procedure1调用10.41.24.53上的yqhdb2@uin_53db.procedure2时需要耗费200~300毫秒,怎么会这么长呢?这种跨主机建立的connection是短连接还是长连接?从验证的结果来看,应该是短链接,能否实现长链接的方式呢?现在是通过ESQL的方式实现动态切换链接,提升速度。

...全文
153 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
woye2008 2011-08-27
  • 打赏
  • 举报
回复
1,在编写INFORMIX存储过程时,dbaccess databasae进入 数据库,直接执行存储过程,如果没有在存储过程中没有begin work却执行的rollback ,好像会提示“not transaction” ,报错,已经修改的数据没有回滚,而是用ESQL的方式调用同样的存储过程没有任何错误信息,可以正常回滚,为什么?
===建议还是在存储过程中开始和结束事物

2,在ORACLE数据库中,尽量使用大写,可以提成运行效率,在INFORMIX数据库中呢?大写和小写哪个效率跟高?还是没有影响?是小写吗?
========应该就是小写了

3,INFORMIX在处理存储过程时,是不是不支持多线程?INFORMIX执行存储过程的机制是怎样的?如果有多个请求,是不是以队列的形式进行等待,当前事物处理完了才能进行下一次请求的处理,串行机制?
=======从测试的效果来看,就是一队列的形式进行那个等待正在处理的事物结束。

4,当从10.41.24.58上的yqhdb1@uin_58db.procedure1调用10.41.24.53上的yqhdb2@uin_53db.procedure2时,需要同时配置53和58两台服务器的信任关系和两个INFORMIX数据库的信任关系,这样的信任关系从安全性上来讲是否可靠?
====== 安全性应该问题不大,信任关系配置好后,53用户如果想访问和修改58用户的数据必须要有58用户的用户名和密码,或者在58上存在同样的用户,同时具有连接且他用户数据库的权限

5,从yqhdb1@uin_58db.procedure1调用10.41.24.53上的yqhdb2@uin_53db.procedure2时需要耗费200~300毫秒,怎么会这么长呢?这种跨主机建立的connection是短连接还是长连接?从验证的结果来看,应该是短链接,能否实现长链接的方式呢?现在是通过ESQL的方式实现动态切换链接,提升速度。
=======现在应该无法实现长连接
疯行无忌 2011-07-20
  • 打赏
  • 举报
回复
友情顶贴。不懂..
woye2008 2011-07-14
  • 打赏
  • 举报
回复
怎么没人回复呢?

1,195

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧