最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oraclecommit的时候发生了什么

来源:懂视网 责编:小采 时间:2020-11-09 11:52:53
文档

Oraclecommit的时候发生了什么

Oraclecommit的时候发生了什么:1.从理解LOGW什么时候将redo log buffer中把redo写入redo log file理解commit; 当redo log buffer 三分之一满的时候写 当commi 1.从理解LOGW什么时候将redo log buffer中把redo写入redo log file理解commit; 当redo l
推荐度:
导读Oraclecommit的时候发生了什么:1.从理解LOGW什么时候将redo log buffer中把redo写入redo log file理解commit; 当redo log buffer 三分之一满的时候写 当commi 1.从理解LOGW什么时候将redo log buffer中把redo写入redo log file理解commit; 当redo l

1.从理解LOGW什么时候将redo log buffer中把redo写入redo log file理解commit; 当redo log buffer 三分之一满的时候写 当commi

1.从理解LOGW什么时候将redo log buffer中把redo写入redo log file理解commit;

  • 当redo log buffer 三分之一满的时候写
  • 当commit的时候写
  • 当发生日志切换的时候写
  • 当产生的redo满1M的时候写
  • 当DBWN要写的时候,先写redo
  • 每3秒写
  • 也就是说,redo是以一种相对连续的方式写入日志文件的。所以不管一个事务产生了多少redo,,其实commit的时候做的工作都差不多,因为大部门的redo已经写入日志文件了

    2.commit的时候发生了什么

  • 把SCN号写入日志文件
  • LGWN把剩余的redo写入日志文件
  • 所有locks被释放掉
  • 进行块清理。块清理是指将,将保存在这个block中的事务信息清理掉。
  • 所以实际上每次commit的时候做的工作都很少,最大的工作就是将redo写入日志文件了,但是大部门redo已经写入到日志文件了;但是这也不代表,每次修改一个块的时候,都要去commit,这样会增加对日志文件的竞争(日志文件是个共享结构),同时也增加了对latches的竞争(保护对共享结构的访问)。所以应该根据逻辑事务的大小来决定什么时候commit。

    3.下面一个例子,产生不同大小的redo,来说明提交的时候,做的工作时间上差不多

    s1:创建一个大表

    s2:创建一个需要插入10行数据的表t_10,设置自动追踪 s3:插入1000行 插入10000行 发现,插入10行,1000行,10000行,commit的时间都很短。

    linux

    文档

    Oraclecommit的时候发生了什么

    Oraclecommit的时候发生了什么:1.从理解LOGW什么时候将redo log buffer中把redo写入redo log file理解commit; 当redo log buffer 三分之一满的时候写 当commi 1.从理解LOGW什么时候将redo log buffer中把redo写入redo log file理解commit; 当redo l
    推荐度:
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top