zoukankan      html  css  js  c++  java
  • 关于redo size(一)

         要辞职了,总是无比轻松,于是今天闲着做了做1z0-042的题库,其中有一个关于truncate的,正确答案是truncate可以产生很少的redo,实践出真实,我做个试验验证一下。

         step1 建表

    1 create table test as select * from dba_objects;

         step2 统计出现在的redosize

         

    select name, value from v$sysstat a where a.name = 'redo size';

          记录下redo size:32378840。

         step3 truncate该表,之后统计redo size

    truncate table test1;

          现在的redo size:32423748。

          可以看出,redo size增长了:44908。

          step4 删掉这张表,依上述法则重建,并且记录redo size。

          

    1 drop table test1;
    2 create table test1 as select * from dba_objects;
    3 select name, value from v$sysstat a where a.name = 'redo size';

          现在的redo size:32737804。

          step5 用普通的办法删除,并记录redo size:

          

    1 delete from test1;
    2 commit; --commit本身不产生redo
    3 select name, value from v$sysstat a where a.name = 'redo size';

         现在的redo size:59415540。

         与之前的记录数相减:26677736。

         由此可见,使用truncate的好处就是可以产生非常少量的redo,因此其删除速度理论上讲,要高于delete。在这实验之前,我们按照甲方要求,清空了一张3G大的数据表,当时因为对truncate认识不足,认为会占用很长的时间,因此我已经做好了将电脑留在办公室跑一夜的打算,但是没想到一眨眼的功夫,这样表就被清空了,可惜当时没有记录下redo size的变化,不然现在拿出来也是一个很好的例证。

         这就当作第一篇吧,以后还要慢慢的研究SQL和redo。

  • 相关阅读:
    程序员副业那些事:聊聊出书和录视频
    跳槽时,不敢要高工资也会对候选人不利
    SQL 查询今天、昨天、7天内、30天的数据
    jquery table按列名称排序
    Asp.Net微信js分享
    表格插件BootStrap-Table使用教程
    ASP.NET中IOC容器Autofac(依赖注入DI 控制反转IOC)
    IIS添加MIME类型.woff/.svg/.woff2/.eot/.otf.ttf
    div垂直居中水平居中css
    Asp.Net报https请求报传输流收到意外的 EOF 或 0 个字节
  • 原文地址:https://www.cnblogs.com/wingsless/p/2278618.html
Copyright © 2011-2022 走看看