Oracle Chained Rows
Version 18.2.0.0

Library Note Morgan's Library Page Header
"We don't live in a dictatorship or a monarchy. I swore an oath in the military and in the Senate to preserve, protect and defend the Constitution of the United States, not to mindlessly cater to the whims of Cadet Bone Spurs and clap when he demands I clap,"
~ Sen. Tammy Duckworth
 
Manufacturing Chained Rows
Courtesy of Andy Hassall conn sys@pdbdev as sysdba

show parameter db_block_size

conn uwclass/uwclass

SQL> @?/rdbms/admin/utlchn1.sql

CREATE TABLE t (
col1  VARCHAR2(4000),
col2  VARCHAR2(4000));

INSERT INTO t VALUES ('x', '1');
INSERT INTO t VALUES ('xx', '2');

INSERT INTO t
(col1, col2)
VALUES
(LPAD('x',4096,'x'), LPAD('x',4096,'x'));

INSERT INTO t VALUES ('xxxx', '4');
INSERT INTO t VALUES ('xxxxx', '5');
COMMIT;

ANALYZE TABLE t LIST CHAINED ROWS INTO chained_rows;

set linesize 121
col table_name format a15
col head_rowid format a20

SELECT sys_op_rpb(rowid), table_name, head_rowid, analyze_timestamp
FROM chained_rows;

SELECT rowid, dbms_rowid.rowid_block_number(rowid) BN, sys_op_rpb(rowid), length(col1), length(col2)
FROM t;

SELECT table_name, chain_cnt
FROM user_tables
WHERE chain_cnt <> 0
ORDER BY 1;

ANALYZE TABLE t COMPUTE STATISTICS;

SELECT table_name, chain_cnt
FROM user_tables
WHERE chain_cnt <> 0
ORDER BY 1;

Related Topics
Analyze
DBMS_IOT
Tables
What's New In 12cR2
What's New In 18cR1

Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2017 Daniel A. Morgan All Rights Reserved