ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 高水标记的实验

高水标记的实验

原创 Linux操作系统 作者:ylw66 时间:2009-07-29 10:58:29 0 删除 编辑

oracle需要实验,对问题也理解的比较透彻

高水标记:曾经包含数据的最右边的块。

概念最关键的是曾经:数据插入时,高数标记会升高;但数据被删除时,有很多块可能不包含数据,但是仍然在高水标记以下。

全扫描期间,oracle将扫描高水标记以下所有的块,即使它们不包含数据。

SQL> set timing on;
SQL> select count(*) from test1;

  COUNT(*)
----------
   1023840

已用时间:  00: 00: 02.01

全表扫描102万的数据用时2秒

SQL> delete from test1;

已删除1023840行。

已用时间:  00: 00: 51.00

删除102万的数据

SQL> select count(*) from test1;

  COUNT(*)
----------
         0

已用时间:  00: 00: 02.00

全表扫描0条的数据用时还是2秒,并没有减少

SQL> truncate table test1;

表已截掉。

已用时间:  00: 00: 00.01

truncate表

SQL> select count(*) from test1;

  COUNT(*)
----------
         0

已用时间:  00: 00: 00.00

再次全表扫描,用时为0

结论:如果计划删除表中的每一行,用truncate方法是比较好的


 

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22111412/viewspace-610701/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-07-29

  • 博文量
    57
  • 访问量
    107663