If Oracle 8i is ur current
version, run the utlchain1.sql script available in ur
ORACLE_HOME/rdbms/admin
directory. This will create
the chained_rows table for u.
Now analyze the affected
table using the command :
analyze table
<table_name> list chained rows into chained_rows;
Now when u select from the
chained_rows table, u will get the rowid of all the rows that r chained in the
table as
head_rowid.
The best way to deal with
chained rows is to export the table's data, rebuild the table with a higher
pctfree and
import the data
back.
Otherwise, copy the chained
rows into a temporary work table in the following way :
create table
<temp_table_name> as
select * from
<table_name> where rowid in
(select head_rowid from
chained_rows where table_name = '<table_name>'
and owner_name =
'<owner_name>');
Then delete the chained
rows from the main table in the following way :
delete from
<table_name>
where rowid
in
(select head_rowid from
chained_rows where table_name = '<table_name>'
and owner_name =
'<owner_name>');
Next, re-insert the chained
rows into the table :
insert into
table_name
select *
from <temp_table_name>;
Commit ur work. Remember to
disable any foreign key constraints during the deletion stage and re-enable them
again after re-insertion of
the rows.
This should eliminate most
of ur chained rows.
Hope this
helps.
Samir
Samir Sarkar
Oracle DBA - Lennon Team SchlumbergerSema Email : [EMAIL PROTECTED] [EMAIL PROTECTED] Phone : +44 (0) 115 - 95 76217 EPABX : +44 (0) 115 - 957 6418 Ext. 76217 Fax : +44 (0) 115 - 957 6018
|
- CHAINED ROWS Bunyamin K. Karadeniz
- RE: CHAINED ROWS Robertson Lee - lerobe
- RE: CHAINED ROWS SARKAR, Samir
- RE: CHAINED ROWS Babich , Sergey
- RE: CHAINED ROWS Orr, Steve
- RE: CHAINED ROWS Jacques Kilchoer
- RE: CHAINED ROWS SARKAR, Samir
- RE: CHAINED ROWS Mike Killough
- Re: CHAINED ROWS Charlie Mengler