English 中文(简体)
有办法偷看里面的另一个Oracle会话吗?
原标题:
  • 时间:2009-05-05 14:12:59
  •  标签:

我有一个查询编辑器(蟾蜍)的数据库。

与此同时,我也调试应用程序有自己的单独的连接。

我的应用程序启动一个事务,做一些更新,然后做决定基于一些SELECT语句。因为更新语句(许多复杂)还没有提交,结果我的应用程序从它的选择是不一样的,我如果我在蟾蜍运行相同的语句。

目前我被倾倒在这个查询应用程序的输出到一个文本文件,和阅读。

peek有没有更好的方法在另一个oracle会议,会议认为,看看,在提交之前完成吗?

问这个的另一种方法是:在甲骨文,我可以允许脏读取之间只有两个会话,而不影响其他人会话?

问题回答

No, Oracle does not permit dirty reads. Also, since the changes may not have physically been written to disk, you won t find them in the data files. The log writer will write any pending data changes at least every three seconds, so you may be able to use the Log Miner stuff to pick it out from there.

但总的来说,最好的办法是包括自己的调试信息,您可以很容易地根据需要开关。

它不是一个完整的答案我知道,虽然没有死读,有锁,可以给你一些想法是怎么回事。

在会话1如果你与主键插入一行7,那么你不会看到它当您选择从会话2。(这将是一个脏读)。

但是,如果您尝试插入使用的主键从会话2 7然后它将阻止会话1等等看,如果会话1将提交或回滚。您可以使用“等10”等待10秒。

存在一个类似的故事更新或任何会导致一个独特的约束违反。

不仅可以在会话中设置隔离级别你想达到读未提交的更改会话命令或登录触发器(我自己没有试过这个)暂时?

我宁愿做什么(一般来说)是地方调试语句的代码中保持永久存在,但在生产——汤姆肚子年代关闭调试。f包是一个有用的起点——http://asktom.oracle.com/tkyte/debugf





相关问题
热门标签