Bo's Oracle Station

查看: 2204|回复: 0

第54/55次:2015-09-04 星期五上下午

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2015-9-4 21:21:09 | 显示全部楼层 |阅读模式
本帖最后由 botang 于 2015-9-5 21:46 编辑

上完1Z0-053第13章   (52-48)
上完1Z0-053第18章   (52-49)

2015-09-04a.sql:

  1. SQL> show user
  2. USER is "SYS"
  3. SQL> conn hr/oracle_4U
  4. ERROR:
  5. ORA-28002: the password will expire within 7 days


  6. Connected.
  7. SQL> create table t05318_chain(a varchar2(2000), b varchar2(2000), c varchar2(2000), d varchar2(2000));
  8. SQL> set echo on
  9. SQL> set feedback on
  10. SQL> insert into t05318_chain(a) values('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');

  11. 1 row created.

  12. SQL> commit;

  13. Commit complete.

  14. SQL> update t05318_chain  set b='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

  15. 1 row updated.

  16. SQL> commit;

  17. Commit complete.

  18. SQL> update t05318_chain set c='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

  19. 1 row updated.

  20. SQL> commit;

  21. Commit complete.

  22. SQL>  select dbms_rowid.rowid_block_number ( rowid ) from t05318_chain;

  23. DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
  24. ------------------------------------
  25.                                  651

  26. 1 row selected.

  27. SQL>  select  * from CHAINED_ROWS;
  28. select  * from CHAINED_ROWS
  29.                 *
  30. ERROR at line 1:
  31. ORA-00942: table or view does not exist


  32. SQL> @?/rdbms/admin/utlchain.sql
  33. SQL> rem
  34. SQL> rem $Header: utlchain.sql 07-may-96.19:40:01 sbasu Exp $
  35. SQL> rem
  36. SQL> Rem Copyright (c) 1990, 1995, 1996, 1998 by Oracle Corporation
  37. SQL> Rem NAME
  38. SQL> REM    UTLCHAIN.SQL
  39. SQL> Rem  FUNCTION
  40. SQL> Rem    Creates the default table for storing the output of the
  41. SQL> Rem    analyze list chained rows command
  42. SQL> Rem  NOTES
  43. SQL> Rem  MODIFIED
  44. SQL> Rem        syeung        06/17/98  - add subpartition_name
  45. SQL> Rem        mmonajje        05/21/96 -  Replace timestamp col name with analyze_timestam
  46. SQL> Rem        sbasu        05/07/96 -  Remove echo setting
  47. SQL> Rem        ssamu        08/14/95 -  merge PTI with Objects
  48. SQL> Rem        ssamu        07/24/95 -  add field for partition name
  49. SQL> Rem        glumpkin        10/19/92 -  Renamed from CHAINROW.SQL
  50. SQL> Rem        ggatlin        03/09/92 -  add set echo on
  51. SQL> Rem        rlim        04/29/91 -           change char to varchar2
  52. SQL> Rem   Klein         01/10/91 - add owner name for chained rows
  53. SQL> Rem   Klein         12/04/90 - Creation
  54. SQL> Rem
  55. SQL>
  56. SQL> create table CHAINED_ROWS (
  57.   2    owner_name          varchar2(30),
  58.   3    table_name          varchar2(30),
  59.   4    cluster_name          varchar2(30),
  60.   5    partition_name          varchar2(30),
  61.   6    subpartition_name  varchar2(30),
  62.   7    head_rowid          rowid,
  63.   8    analyze_timestamp  date
  64.   9  );

  65. Table created.

  66. SQL>
  67. SQL> set linesize 1000
  68. SQL> select  * from CHAINED_ROWS;

  69. no rows selected

  70. SQL> analyze table t05318_chain list chained rows;

  71. Table analyzed.

  72. SQL> select  * from CHAINED_ROWS;

  73. no rows selected

  74. SQL> update t05318_chain set d='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

  75. 1 row updated.

  76. SQL> commit;

  77. Commit complete.

  78. SQL> select dbms_rowid.rowid_block_number ( rowid ) from t05318_chain;

  79. DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
  80. ------------------------------------
  81.                                  651

  82. 1 row selected.

  83. SQL> analyze table t05318_chain list chained rows;

  84. Table analyzed.

  85. SQL> select  * from CHAINED_ROWS;

  86. OWNER_NAME                       TABLE_NAME                      CLUSTER_NAME                     PARTITION_NAME                    SUBPARTITION_NAME                   HEAD_ROWID              ANALYZE_TIMESTAMP
  87. ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------ ------------------
  88. HR                               T05318_CHAIN                                                                                    N/A            AAASNnAAEAAAAKLAAA 04-SEP-15

  89. 1 row selected.

  90. SQL> show parameter db_32k
  91. ORA-00942: table or view does not exist


  92. SQL> conn / as sysdba
  93. Connected.
  94. SQL> show parameter db_32k

  95. NAME                                     TYPE         VALUE
  96. ------------------------------------ ----------- ------------------------------
  97. db_32k_cache_size                     big integer 0
  98. SQL> alter system set db_32k_cache_size=1M ;

  99. System altered.

  100. SQL> show parameter db_32k_cache_size

  101. NAME                                     TYPE         VALUE
  102. ------------------------------------ ----------- ------------------------------
  103. db_32k_cache_size                     big integer 64M
  104. SQL> create tablespace tbs32k datafile size 20M blocksize 32K;

  105. Tablespace created.

  106. SQL> conn hr/oracle_4U
  107. ERROR:
  108. ORA-28002: the password will expire within 7 days


  109. Connected.
  110. SQL> alter table t05318_chain  move tablespace tbs32k;

  111. Table altered.

  112. SQL> select  * from CHAINED_ROWS;

  113. OWNER_NAME                       TABLE_NAME                      CLUSTER_NAME                     PARTITION_NAME                    SUBPARTITION_NAME                   HEAD_ROWID              ANALYZE_TIMESTAMP
  114. ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------ ------------------
  115. HR                               T05318_CHAIN                                                                                    N/A            AAASNnAAEAAAAKLAAA 04-SEP-15

  116. 1 row selected.

  117. SQL> truncate table CHAINED_ROWS;

  118. Table truncated.

  119. SQL> analyze table t05318_chain list chained rows;

  120. Table analyzed.

  121. SQL> select  * from CHAINED_ROWS;

  122. no rows selected

  123. SQL> create table t05318_migrate( a varchar2(2000))  pctfree 0;

  124. Table created.

  125. begin
  126.    for i in 1..733
  127.    loop
  128.       insert into  t05318_migrate values('A');
  129.     end loop;
  130.   6      commit;
  131.   7  end;
  132.   8  /

  133. PL/SQL procedure successfully completed.

  134. SQL> select  dbms_rowid.rowid_block_number(rowid) , count(*)  from t05318_migrate
  135.   2  group by dbms_rowid.rowid_block_number(rowid);

  136. DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)   COUNT(*)
  137. ------------------------------------ ----------
  138.                                  651            733

  139. 1 row selected.

  140. SQL> begin
  141.   2  for i in 1..100
  142.   3  loop
  143.   4   insert into  t05318_migrate values('B');
  144.   5  end loop;
  145.   6  commit;
  146.   7  end;
  147.   8  /

  148. PL/SQL procedure successfully completed.

  149. SQL> select  dbms_rowid.rowid_block_number(rowid) , count(*)  from t05318_migrate
  150.   2  group by dbms_rowid.rowid_block_number(rowid);

  151. DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)   COUNT(*)
  152. ------------------------------------ ----------
  153.                                  651            733
  154.                                  652            100

  155. 2 rows selected.

  156. SQL> delete from t05318_migrate where A='B';

  157. 100 rows deleted.

  158. SQL> commit;

  159. Commit complete.

  160. SQL> select  dbms_rowid.rowid_block_number(rowid) , count(*)  from t05318_migrate
  161.   2   group by dbms_rowid.rowid_block_number(rowid);

  162. DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)   COUNT(*)
  163. ------------------------------------ ----------
  164.                                  651            733

  165. 1 row selected.

  166. SQL> analyze table t05318_migrate  list chained rows;

  167. Table analyzed.

  168. SQL>  select  * from CHAINED_ROWS;

  169. no rows selected

  170. SQL>  update t05318_migrate set a='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' where rownum=1;

  171. 1 row updated.

  172. SQL> commit;

  173. Commit complete.

  174. SQL> analyze table t05318_migrate  list chained rows;

  175. Table analyzed.

  176. SQL> select  * from CHAINED_ROWS;

  177. OWNER_NAME                       TABLE_NAME                      CLUSTER_NAME                     PARTITION_NAME                    SUBPARTITION_NAME                   HEAD_ROWID              ANALYZE_TIMESTAMP
  178. ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------ ------------------
  179. HR                               T05318_MIGRATE                                                                                    N/A            AAASNrAAEAAAAKLAAA 04-SEP-15

  180. 1 row selected.

  181. SQL> select  dbms_rowid.rowid_block_number(rowid) , count(*)  from t05318_migrate
  182.   2  group by dbms_rowid.rowid_block_number(rowid);

  183. DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)   COUNT(*)
  184. ------------------------------------ ----------
  185.                                  651            733

  186. 1 row selected.

  187. SQL> select tablespace_name from user_tables where table_name='T05318_MIGRATE';

  188. TABLESPACE_NAME
  189. ------------------------------
  190. USERS

  191. 1 row selected.

  192. SQL> alter table t05318_migrate move tablespace users;

  193. Table altered.

  194. SQL> select  dbms_rowid.rowid_block_number(rowid) , count(*)  from t05318_migrate
  195.   2  group by dbms_rowid.rowid_block_number(rowid);

  196. DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)   COUNT(*)
  197. ------------------------------------ ----------
  198.                                  667            730
  199.                                  668              3

  200. 2 rows selected.

  201. SQL> truncate table chained_rows;

  202. Table truncated.

  203. SQL> select  * from  chained_rows;

  204. no rows selected

  205. SQL> analyze table t05318_migrate  list chained rows;

  206. Table analyzed.

  207. SQL>  select  * from  chained_rows;

  208. no rows selected

  209. SQL> select  pct_free from user_tables where table_name='T05318_MIGRATE';

  210.   PCT_FREE
  211. ----------
  212.          0

  213. 1 row selected.

  214. SQL> alter table t05318_migrate  pctfree 20 ;

  215. Table altered.

  216. SQL> select  pct_free from user_tables where table_name='T05318_MIGRATE';

  217.   PCT_FREE
  218. ----------
  219.         20

  220. 1 row selected.

  221. SQL> alter table t05318_migrate move tablespace users;

  222. Table altered.

  223. SQL> select  dbms_rowid.rowid_block_number(rowid) , count(*)  from t05318_migrate
  224.   2   group by dbms_rowid.rowid_block_number(rowid);

  225. DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)   COUNT(*)
  226. ------------------------------------ ----------
  227.                                  651            584
  228.                                  652            149

  229. 2 rows selected.

  230. SQL>
复制代码

2015-09-04b.sql:

  1. select  * from dba_segments s where s.owner='HR' and s.segment_name='T05318_DEFER';

  2. select  * from dba_segments s where s.owner='HR' and s.segment_name='T05318_NODEFER';

  3. select  * from dba_segments s where s.owner='HR' and s.segment_name='T05318_CMD';


  4. select * from dba_segments s where s.owner='HR' and s.segment_name='T05318_PART';

  5. select  * from dba_segments s where s.owner='HR' and s.segment_name='I05318_A';

  6. select  * from dba_segments s where s.owner='HR' and s.segment_name='IBIG';

  7. select  * from dba_indexes i where i.owner='HR' and i.index_name='IBIG';


  8. select * from dba_segments s where s.owner='HR' and s.segment_name  like '%DEMO2';

  9. select i.index_name , decode( ip.status,null,i.status,ip.status),
  10. i.partitioned,ip.partition_name
  11. from dba_ind_partitions ip , dba_indexes i
  12. where ip.index_name(+)=i.index_name
  13. and i.table_name='DEMO2' and i.table_owner='HR';
复制代码

compress.sql:


  1. Oracle11gR2的表压缩特性通过压缩表中的数据以减少对空间的占用。Oracle11gR2支持三种不同的压缩方式:
  2. ·        支持直接路径加载的Basic压缩方式(10x)
  3. ·        支持针对所有DML操作的OLTP压缩方式(2-4x)
  4. ·        Exadata专属的Hybrid columnar compression压缩方式

  5.     Oracle公司建议我们采用以上三种不同的压缩方式,针对特定的应用场合来进行表压缩。如果该表包含大量冗长的和重复的值,通过被压缩可以减少该表对磁盘空间的占用和对SGA中数据库缓冲区缓存的占用。
  6. 先从图形界面入手,我们发现在新建表空间时Oracle11gR2的界面出现压缩选项:
  7. 在 下面各个部分所有的实验中我们都创建两个表:一个表在TBS_NOCOMPRESSION表空间,另一个表在有对应默认压缩选项的表空间。最后我们把在 TBS_NOCOMPRESSION表空间上的那个表转换成对应压缩选项表。通过对比实验来弄清Oracle11gR2这方面的新特性。
  8. --sys--
  9. create tablespace tbs_nocompression datafile size 10M autoextend on;
  10. create tablespace tbs_basic datafile size 10M autoextend on default compress basic;
  11. create tablespace tbs_oltp datafile size 10M autoextend on default compress for oltp;
  12. create tablespace tbs_query datafile size 10M autoextend on default compress for query;
  13. create tablespace tbs_archive datafile size 10M autoextend on default compress for archive;
  14. select  t.tablespace_name, t.def_tab_compression, t.compress_for  from dba_tablespaces t
  15. where t.tablespace_name in ('TBS_NOCOMPRESSION',
  16.                                                   'TBS_BASIC', 'TBS_OLTP',
  17.                                                    'TBS_QUERY',
  18.                                                    'TBS_ARCHIVE');
  19. --hr--                                                   
  20. create table t_nocompression (a varchar2(200)) tablespace tbs_nocompression;
  21. create table t_basic (a varchar2(200)) tablespace tbs_basic;
  22. create table t_oltp (a varchar2(200)) tablespace tbs_oltp;
  23. --hr-error--
  24. create table t_query (a varchar2(200)) tablespace tbs_query;
  25. create table t_archive (a varchar2(200)) tablespace tbs_archive;  
  26. --hr--
  27. begin
  28.    for i in 1..400
  29.    loop
  30.       insert into t_nocompression values('AAAAAAAAAAAAAAAAAAAA');
  31.    end loop;
  32.    commit;
  33. end;
  34. --hr--
  35. begin
  36.    for i in 1..400
  37.    loop
  38.       insert into t_basic values('AAAAAAAAAAAAAAAAAAAA');
  39.    end loop;
  40.    commit;
  41. end;
  42. --hr--
  43. begin
  44.    for i in 1..400
  45.    loop
  46.       insert into t_oltp values('AAAAAAAAAAAAAAAAAAAA');
  47.    end loop;
  48.    commit;
  49. end;  
  50. --hr--
  51. select  t.TABLE_NAME, t.PCT_FREE , t.COMPRESSION , t.COMPRESS_FOR, t.TABLESPACE_NAME
  52. from user_tables t where t.TABLE_NAME   in ('T_NOCOMPRESSION','T_BASIC','T_OLTP');
  53. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_nocompression  group by  substr(rowid, 10, 6 );
  54. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_basic  group by  substr(rowid, 10, 6 );      
  55. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_oltp  group by  substr(rowid, 10, 6 );  
  56. --sys--
  57. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid)
  58.       from hr.T_NOCOMPRESSION  group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid);
  59. --sys--
  60. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC',row_id => rowid)
  61.       from hr.T_BASIC group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC',row_id => rowid);
  62. --sys--      
  63. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_OLTP',row_id => rowid)
  64.       from hr.T_OLTP group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_OLTP',row_id => rowid);
  65. --hr--      
  66. create table t_basic2 (a varchar2(200)) tablespace tbs_nocompression compress;
  67. create table t_oltp2 (a varchar2(200)) tablespace tbs_nocompression compress for oltp;
  68. --hr-error--
  69. create table t_query2 (a varchar2(200)) tablespace tbs_nocompression compress for query;
  70. create table t_archive2 (a varchar2(200)) tablespace tbs_nocompression compress for archive;     
  71. --hr--
  72. select  t.TABLE_NAME, t.PCT_FREE , t.COMPRESSION , t.COMPRESS_FOR, t.TABLESPACE_NAME
  73. from user_tables t where t.TABLE_NAME   in ('T_NOCOMPRESSION','T_BASIC','T_OLTP',  'T_BASIC2','T_OLTP2' );
  74. --hr--
  75. begin
  76.    for i in 1..400
  77.    loop
  78.       insert into t_basic2 values('AAAAAAAAAAAAAAAAAAAA');
  79.    end loop;
  80.    commit;
  81. end;
  82. --hr--
  83. begin
  84.    for i in 1..400
  85.    loop
  86.       insert into t_oltp2 values('AAAAAAAAAAAAAAAAAAAA');
  87.    end loop;
  88.    commit;
  89. end;
  90. --hr--
  91. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_basic2  group by  substr(rowid, 10, 6 );
  92. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_oltp2  group by  substr(rowid, 10, 6 );
  93. --sys--
  94. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC2',row_id => rowid)
  95.       from hr.T_BASIC2 group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC2',row_id => rowid);
  96. --sys--      
  97. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_OLTP2',row_id => rowid)
  98.       from hr.T_OLTP2 group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_OLTP2',row_id => rowid);
  99. --hr--
  100. alter table t_nocompression compress for oltp;
  101. select  t.TABLE_NAME, t.PCT_FREE , t.COMPRESSION , t.COMPRESS_FOR, t.TABLESPACE_NAME
  102. from user_tables t where t.TABLE_NAME   in ('T_NOCOMPRESSION','T_BASIC','T_OLTP',  'T_BASIC2','T_OLTP2' );
  103. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_nocompression  group by  substr(rowid, 10, 6 );     
  104. --sys--
  105. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid)
  106.    from hr.T_NOCOMPRESSION  group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid);   
  107. --hr--
  108. begin
  109.    for i in 1..400
  110.    loop
  111.       insert into t_nocompression values('AAAAAAAAAAAAAAAAAAAA');
  112.    end loop;
  113.    commit;
  114. end;
  115. --hr--
  116. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_nocompression  group by  substr(rowid, 10, 6 );
  117. --sys--
  118. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid)
  119.       from hr.T_NOCOMPRESSION  group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid);
  120. --hr--
  121. alter table t_nocompression move tablespace tbs_nocompression;
  122. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_nocompression  group by  substr(rowid, 10, 6 );   
  123. --sys--
  124. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid)
  125.       from hr.T_NOCOMPRESSION  group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid);
  126. --hr--
  127. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_basic  group by  substr(rowid, 10, 6 );  
  128. insert /*+ append */ into t_basic select  * from  t_basic;
  129. commit;
  130. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_basic  group by  substr(rowid, 10, 6 );
  131. --sys--
  132. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC',row_id => rowid)
  133.       from hr.T_BASIC group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC',row_id => rowid);
  134. --hr--
  135. alter table t_basic move tablespace  TBS_NOCOMPRESSION;
  136. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_basic  group by  substr(rowid, 10, 6 );      
  137. --sys--
  138. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC',row_id => rowid)
  139.       from hr.T_BASIC group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC',row_id => rowid);
  140. --sys-evolution--
  141. drop table hr.t_basic_big;
  142. create table hr.t_basic_big compress as select  * from dba_source;
  143. --sys-advisor--
  144. declare
  145.   v_blkcnt_cmp number;
  146.   v_blkcnt_uncmp  number;
  147.   v_row_cmp number;
  148.   v_row_uncmp number;
  149.   v_cmp_ratio number;
  150.   v_comptype_str  varchar2(200);
  151. BEGIN
  152. DBMS_COMPRESSION.GET_COMPRESSION_RATIO(scratchtbsname => 'USERS',
  153.                                                                                              ownname =>'HR',
  154.                                                                                              tabname =>'T_BASIC_BIG',
  155.                                                                                              partname =>null,
  156.                                                                                              comptype => 2,
  157.                                                                                              blkcnt_cmp => v_blkcnt_cmp,
  158.                                                                                              blkcnt_uncmp =>  v_blkcnt_uncmp,
  159.                                                                                              row_cmp =>v_row_cmp,
  160.                                                                                              row_uncmp => v_row_uncmp,
  161.                                                                                              cmp_ratio =>  v_cmp_ratio,
  162.                                                                                              comptype_str =>v_comptype_str);                                                  
  163. DBMS_OUTPUT.PUT_LINE('Blk count compressed = ' || v_blkcnt_cmp);
  164. DBMS_OUTPUT.PUT_LINE('Blk count uncompressed = ' || v_blkcnt_uncmp);
  165. DBMS_OUTPUT.PUT_LINE('Row count per block compressed = ' || v_row_cmp);
  166. DBMS_OUTPUT.PUT_LINE('Row count per block uncompressed = ' || v_row_uncmp);
  167. DBMS_OUTPUT.PUT_LINE('ratio: '||v_cmp_ratio);
  168. DBMS_OUTPUT.PUT_LINE('Compression type = ' || v_comptype_str);
  169. end;
  170. --sys--
  171. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC_BIG',row_id => rowid)
  172.       from hr.T_BASIC_BIG group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC_BIG',row_id => rowid);  
  173. --hr--
  174. create table t_basic_col( a  number , b varchar2(20))  compress ;
  175. insert into t_basic_col values ( 1,'A') ;
  176. commit;
  177. create table t_oltp_col( a  number , b varchar2(20))  compress  for oltp;
  178. insert into t_oltp_col values ( 1,'A') ;
  179. commit;
  180. select  * from  t_basic_col;
  181. select  * from t_oltp_col;
  182. alter table  t_basic_col drop column b;
  183. alter table  t_basic_col drop ( b);
  184. alter table t_oltp_col drop column b;
  185. select  * from t_oltp_col;

复制代码

suspend.sql:


  1. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',
  2.         tabname => 'T_BASIC_BIG',row_id => rowid)
  3.       from hr.T_BASIC_BIG
  4.       group by     dbms_compression.get_compression_type(ownname => 'HR',
  5.          tabname => 'T_BASIC_BIG',row_id => rowid);



  6. declare
  7.   v_blkcnt_cmp number;
  8.   v_blkcnt_uncmp  number;
  9.   v_row_cmp number;
  10.   v_row_uncmp number;
  11.   v_cmp_ratio number;
  12.   v_comptype_str  varchar2(200);
  13. BEGIN
  14. DBMS_COMPRESSION.GET_COMPRESSION_RATIO(scratchtbsname => 'USERS',
  15.                                                                                              ownname =>'HR',
  16.                                                                                              tabname =>'T_BASIC_BIG',
  17.                                                                                              partname =>null,
  18.                                                                                              comptype => 1,
  19.                                                                                              blkcnt_cmp => v_blkcnt_cmp,
  20.                                                                                              blkcnt_uncmp =>  v_blkcnt_uncmp,
  21.                                                                                              row_cmp =>v_row_cmp,
  22.                                                                                              row_uncmp => v_row_uncmp,
  23.                                                                                              cmp_ratio =>  v_cmp_ratio,
  24.                                                                                              comptype_str =>v_comptype_str);                                                  
  25. DBMS_OUTPUT.PUT_LINE('Blk count compressed = ' || v_blkcnt_cmp);
  26. DBMS_OUTPUT.PUT_LINE('Blk count uncompressed = ' || v_blkcnt_uncmp);
  27. DBMS_OUTPUT.PUT_LINE('Row count per block compressed = ' || v_row_cmp);
  28. DBMS_OUTPUT.PUT_LINE('Row count per block uncompressed = ' || v_row_uncmp);
  29. DBMS_OUTPUT.PUT_LINE('ratio: '||v_cmp_ratio);
  30. DBMS_OUTPUT.PUT_LINE('Compression type = ' || v_comptype_str);
  31. end;

  32. alter table "HR"."TBIG" shrink space;

  33. select bytes/1024/1024 from dba_segments s where s.owner='HR' and s.segment_name='TBIG';

  34. select  count(*)  from hr.tbig;


  35. select * from v_$session s where  s.BLOCKING_SESSION  is not null;

  36. grant resumable to hr;



  37. create tablespace tbs05318_small datafile size 5M autoextend off;


  38. select  bytes/1024/1024  from dba_data_files df
  39.   where df.tablespace_name='TBS05318_SMALL';


  40. CREATE
  41. OR REPLACE TRIGGER TRG_SUSPEND
  42. AFTER SUSPEND
  43. ON DATABASE
  44. declare
  45. v_size number;
  46. pragma AUTONOMOUS_TRANSACTION;
  47. begin
  48.   select  bytes into v_size from dba_data_files
  49.    where  file_name='+DATA/orcl/datafile/tbs05318_small.271.889552355';
  50.   v_size := v_size + 1048576;
  51.   execute immediate 'alter database datafile
  52.    ''+DATA/orcl/datafile/tbs05318_small.271.889552355''  resize '||v_size;
  53. commit;
  54. end;




复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-11-24 08:24 , Processed in 0.036925 second(s), 25 queries .

快速回复 返回顶部 返回列表