博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
12c in-database archive
阅读量:2433 次
发布时间:2019-05-10

本文共 2314 字,大约阅读时间需要 7 分钟。

测试表,全表扫描54592一致性读,返回786432行
SQL> select * from p;
786432 rows selected. 
Statistics
----------------------------------------------------------
         32  recursive calls
          2  db block gets
      
54592  consistent gets
          0  physical reads
        528  redo size
   21312856  bytes sent via SQL*Net to client
     577259  bytes received via SQL*Net from client
      52430  SQL*Net roundtrips to/from client
          3  sorts (memory)
          0  sorts (disk)
     
786432  rows processed
在表上启用in-database archive
alter table p 
row archival;
启用后,表上会多出一个ORA_ARCHIVE_STATE隐藏列
SQL> select substr(column_name,1,22) name, substr(data_type,1,20) data_type, column_id as col_id,
  2    segment_column_id as seg_col_id, internal_column_id as int_col_id, hidden_column, char_length
  3    from user_tab_cols where table_name='P';
NAME                 DATA_TYPE      COL_ID SEG_COL_ID INT_COL_ID HID CHAR_LENGTH
-------------------- ------------- ------- ---------- ---------- --- -----------
ID                   NUMBER              1          1          1 NO            0
NAME                 VARCHAR2            2          2          2 NO          150
SYS_NC00003$         RAW                            3          3 YES           0
ORA_ARCHIVE_STATE    VARCHAR2                       4          4 YES        4000
默认值都是0
SQL> select ORA_ARCHIVE_STATE from p where rownum < 10;
ORA_ARCHIVE_STATE
-----------------------
0
0
0
0
0
0
0
0
0
9 rows selected.
归档方式就是更新ORA_ARCHIVE_STATE的值
SQL> update p set 
ORA_ARCHIVE_STATE = 20 where id >=100;
393216 rows updated.
SQL> commit;
Commit complete.
更新后,被归档的行就不可见了,相关数据块不需要被扫描。
SQL>  select * from p;
393216 rows selected.
Statistics
----------------------------------------------------------
        209  recursive calls
          0  db block gets
      
29413  consistent gets
       2907  physical reads
          0  redo size
   10460172  bytes sent via SQL*Net to client
     288905  bytes received via SQL*Net from client
      26216  SQL*Net roundtrips to/from client
         22  sorts (memory)
          0  sorts (disk)
     
393216  rows processed
对于需要历史数据的统计类SQL,可以在session级别设置归档数据可见
SQL> alter session 
set row archival visibility = all;
Session altered.
SQL> select * from p;
786432 rows selected.
Statistics
----------------------------------------------------------
          5  recursive calls
          0  db block gets
      
55322  consistent gets
          0  physical reads
          0  redo size
   21312856  bytes sent via SQL*Net to client
     577259  bytes received via SQL*Net from client
      52430  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
     
786432  rows processed

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

转载于:http://blog.itpub.net/26239116/viewspace-1476293/

你可能感兴趣的文章
程序员写代码没激情该怎么破?
查看>>
漫画 | 一个前端渣渣的成功逆袭
查看>>
与吴恩达并肩战斗,她是 AI 界的女超人!|人物志
查看>>
微信手机 WeOS 的可行性到底有多大?
查看>>
阿里面试,我挂在了第四轮……
查看>>
C++ 程序员到高级架构师,必须经历的三个阶段
查看>>
程序媛到最后,拼的到底是什么?
查看>>
“再见,微软!”
查看>>
ARM 发布新一代 CPU 和 GPU,实现 20% 性能提升!
查看>>
技术引路:机器学习仍大有可为,但方向在哪里?
查看>>
漫画:如何给女朋友解释什么是编译与反编译
查看>>
刷屏了!这篇 Python 学习贴,90% 的程序员都用的上!
查看>>
漫画:如何给女朋友解释什么是适配器模式?
查看>>
拒绝与其他码农一致!CSDN定制T让你成为最靓的仔
查看>>
程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!
查看>>
一年参加一次就够,全新升级的 AI 开发者大会议程出炉!
查看>>
基于 XDanmuku 的 Android 性能优化实战
查看>>
基于嵌入式操作系统的物联网安全
查看>>
一个只有 99 行代码的 JS 流程框架
查看>>
移动周刊第 186 期:移动 App 客户端性能优化、iOS 开源库源码解析
查看>>