|
|
最初由 yangtingkun 发布
[B]直接从数据库中是查不出来的。
有两个变通的方法:一、直接查询数据文件或者通过dump的结果查询。二、把表exp出来,然后truncate,再imp回去,然后analyze table,这是得到的chained_rows的数量就是行链接数。 [/B]
SQL> show parameter block_size
NAME TYPE VALUE
------------------------------------ ----------- -----------------------
db_block_size integer 8192
1、建表
SQL> create table tchar (id1 char(2000),
2 id2 char(2000),
3 id3 char(2000),
4 id4 char(2000))
5 /
Table created.
SQL> create table CHAINED_ROWS (
2 owner_name varchar2(30),
3 table_name varchar2(30),
4 cluster_name varchar2(30),
5 partition_name varchar2(30),
6 subpartition_name varchar2(30),
7 head_rowid rowid,
8 analyze_timestamp date
9 );
Table created.
2、插入两条数据,其中一条不会行连接,另外一条则会。
SQL> insert into tchar select '1','2','3','' from dual;
1 row created.
SQL> insert into tchar select '1','2','3','4' from dual;
1 row created.
SQL> commit;
Commit complete.
3、分析表
SQL> analyze table tchar compute statistics;
Table analyzed.
4、查看行连接情况
SQL> select chain_cnt from tabs where table_name = 'TCHAR';
CHAIN_CNT
----------
1
5、把连接行插入到表中。
SQL> analyze table tchar list chained rows into CHAINED_ROWS;
Table analyzed.
6、查看连接行的ROWID
SQL> SELECT OWNER_NAME,TABLE_NAME, HEAD_ROWID, ANALYZE_TIMESTAMP FROM CHAINED_ROWS;
OWNER_NAME TABLE_NAME HEAD_ROWID ANALYZE_TIMESTAMP
------------------------------ ------------------------------ ------------------ -------------------
SCOTT TCHAR AAARCKAABAAANm0AAA 2005-02-25 15:17:48
7、比较表中,哪一行是连接行,结果证实我们
所设置的那一行(id4='4')就是连接行。
SQL> select rowid, id4 from tchar;
ROWID
------------------
ID4
------------------------------------------------
AAARCKAABAAANmyAAA
AAARCKAABAAANm0AAA
4 |
|