I've been reading through some of the threads about taking care of chained rows. I understand the method of deleting and re-inserting the rows, but nobody seems to mention disabling triggers.
Shouldn't triggers on the table be disabled before deleting and re-inserting ?
What happened is that Oracle mixed up chained and migrated rows ... the CHAINED_ROWS column refers to both chained and migrated rows.
Migrated = rows that were updated to be longer and didn't have room in their current block, so the data got moved and a pointer was left in the original block to show where the row migrated to.
Chained = rows that were too big to fit into any single block (eg. a row of 3kb in a table of block size 2kb). They get "chained" over multiple rows.
The only fix for chained rows is to move the table to a tablespace of larger block size. Migrated rows are the ones that get fixed through delete/insert.
Originally posted by Mr.Hanky Wow, so you are right and Oracle is wrong huh?
Damn them!!
MH
Slimdave is right.. chained rows and migrated rows.. all these are our own definitions.. the rows that cant be fit into single block are called chained rows.. the ones that got migrated because of lack space at the time of update and can fit into single block are migrated rows..
Bookmarks