Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1967370
  • 博文数量: 606
  • 博客积分: 9991
  • 博客等级: 中将
  • 技术积分: 5725
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-17 19:07
文章分类

全部博文(606)

文章存档

2011年(10)

2010年(67)

2009年(155)

2008年(386)

分类:

2008-07-19 23:13:48

楼主
我在sql*plus 中用system 登录后,使用insert into 语句向某个表中插入了几条记录。然后,我在Enterprise manager control 中在方案节点中打开这个表,但是看不到刚插入的记录。如果在sql*plus 中用select 语句还能查出来。不知是怎么回事。还有,可能过 上一会就能看到刚插入的记录了,是不是在Enterprise manager control 中查看记录有个延时呀?
发表于:2008-03-10 18:03:481楼 得分:5
你在SQL*PLUS中插入记录以后,有没有进行COMMIT操作啊,如果没有进行的话,那么在别的会话中是看不到刚刚插入的记录的.

发表于:2008-03-10 18:37:342楼 得分:0
Commit一下,然后在再刷新EMC
发表于:2008-03-10 18:38:473楼 得分:0
commit
发表于:2008-03-10 20:49:544楼 得分:0
谢谢。各位。这其中的原理是什么呀?我开始用insert into插入数据后,此时数据保存在什么地方呢?为什么等好长时间,我没有用commit ,但在EMC里面又看到了呢?
发表于:2008-03-11 09:58:265楼 得分:0
commit 提交事務
发表于:2008-03-11 10:01:036楼 得分:5
为什么等好长时间,我没有用commit ,但在EMC里面又看到了呢?

----------------------------------------------------
其實你肯定已經commit,只不過沒有顯式提交事務,當你進行DDL、
DCL操作時,oracle會自動提交事務!
发表于:2008-03-11 10:47:427楼 得分:10
我来给你解释一下!

oracle的工作机制是这样,为了运行快速orecle的所有操作都是在内存中进行的,当没有出现事物提交commit,你所插入的数据都会存储在 sga中的高速数据缓存区中的脏数据缓存区,刚说过了oracle的操作都是在内存中完成的,所以你的应用程序连接的并读取的并不是数据文件里的数据,而是脏数据块中修改过的数据,但这些据数据按照oracle的存储机制只有产生一定条件参会把内存中的数据存入数据文件,其中commit是一种情况,讲到这有些基础的朋友应该明白了吧!
阅读(1645) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~