今天复习042的题目时看到这么一句话:
commit只是写日志文件,而不是写数据文件
我就有疑问了,那么事务中提交的数据是什么时候写入数据文件的呢?
commit只是写日志文件,而不是写数据文件
我就有疑问了,那么事务中提交的数据是什么时候写入数据文件的呢?
解决方案 »
- 如何删掉它?
- 求助求助 关于批量建表
- 求助啊:JSP连mysql,改成连oracle怎么改(c3p0)~~在线等!!
- plsql时间设置求助
- ORA-12560和ORA-12154错误
- oracle主体复制时,复制机上oracle一定要建立一个连接吗?
- 怎样在sql中使用function返回的cursor
- NLS—LANG是UTF8时oracle监听服务启动失败
- 如何将Oracle里的数据导出到Mysql里
- 过程执行成功,可以在plus查到,但是数据库里找不到记录???
- ORA-20000: Cannot parse for clause: FORCOLUMNS size 1
- 关于导入表空间的问题。
1、超时
2、没有空闲缓冲区
3、dirty 数据缓冲区达到阀值
4、表空间开始备份(begin backup)
5、表空间offline
6、drop 或 truncate 表
7、表空间置为read only
8、检查点(checkpoint,增量或正常的检查点)
9、RAC ping
DBWn会把块写出到所有磁盘,即分散在各个磁盘上,也就是说,DBWn会做大量的分散写(scattered write);
LGWR则是向重做日志完成大量的顺序写(sequential write)。
从理论上讲,如果提交期间Oracle已经将已修改的块物理地写出到磁盘,就可以跳过写在线重做日志文件。但实际上,提交期间,只是由LGWR会把每个事务的重做信息写至在线重做日志,DBWn则在后台将数据库块刷新输出到磁盘。
这么做的原因就是分散写比顺序写慢多了。DBWn 在后台完成它的任务(很慢),而LGWR在用户提交后等待时完成自己的任务(这个任务比较快),就能得到更好的整体性能。尽管从技术上讲这样会使Oracle执行更多不必要的I/O(写日志以及写数据文件)。