avg_row_leng should also be a good indication of the row migration vs chaining for many tables .. Or do a sample based CTAS and see whether you still have CHAIN_CNT in user_tables? For long raw usually rebuild does not work unless you know the avg row legnth and setup a different block_size for that? On Thu, Oct 30, 2008 at 10:32 PM, Elliott, Patrick < patrick.elliott@xxxxxxxxxxxxx> wrote: > The actual chained rows did not go down in the database. Your duplicate > just restarted the database. The v$sysstat numbers are reset to zero when > you bounce the database. It looks to me like you are badly in need of a > database reorg. An rman duplicate is the same as a recovery of the > datafiles, so there is no way that the chained rows could go down. > > > Pat > > -----Original Message----- > From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] > On Behalf Of Joel.Patterson@xxxxxxxxxxx > Sent: Thursday, October 30, 2008 8:08 AM > To: mwf@xxxxxxxx; oracle-l@xxxxxxxxxxxxx > Subject: RE: Chained vs. migrated rows - Any easy way to tell the > difference? > > > > I would like to ask a question peripheral to the discussion. I used > RMAN duplicate to create the acceptance database. It appears the > duplicate command significantly reduced the continued row count. > > Can someone verify that RMAN would do that? > > It brings up an option: Rather than do the usual fixes. I could (not > counting FTP) duplicate acceptance and then duplicate back to production > within two to three hours..... if it was a complete mess. (30 columns > are still LONG columns). > > (Or I could restore production from it's own backup in about half the > time). > > > DBMON @ pegaccp> SELECT name, value FROM v$sysstat WHERE name = > 'table fetch continued row'; > > NAME VALUE > ------------------------------ ---------- > table fetch continued row 2,156,586 > > DBMON @ pegprod> SELECT name, value FROM v$sysstat WHERE name = 'table > fetch continued row'; > > NAME VALUE > ------------------------------ ----------------- > table fetch continued row 1,114,764,125 > > Joel Patterson > Database Administrator > joel.patterson@xxxxxxxxxxx > x72546 > 904 727-2546 > > -----Original Message----- > From: oracle-l-bounce@xxxxxxxxxxxxx > [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Mark W. Farnham > Sent: Wednesday, October 29, 2008 5:22 PM > To: 'ORACLE-L' > Subject: FW: Chained vs. migrated rows - Any easy way to tell the > difference? > > Steve (as usual) nailed it. As for the operation of the fix if you decide > you need it I have some ideas. If you set up the destination table for the > chained rows to be one row per block, then the difference between used > blocks in and count(*) of the destination table is a ceiling on the number > of chained rows. (It could overstate the number of chained rows if one or > more chained rows take up more than 2 blocks. So if you have 1000 rows in > the "chained row" > destination table and 1000 used blocks they were all migrated. IF 1001 then > you know one was chained, but IF 1002 you aren't sure whether it was two > chained rows or one multi-chained row from just the > count(*) and the used block data. > > But since you're trying to see if there are enough migrated rows to bother > fixing, that ceiling number subtracted from the count should let you know. > And I think you can identify the chained rows from the destination table as > the ones that throw a continued row if you select the last column there. If > there are enough total rows to bother differentiating between chained and > migrated in your fix, you could use that information to skip the > deletion/reinsertion of the chained rows and then use the destination table > as the driver of the delete and reinsertion of the migrated rows. (Simply > delete the rows identifed as truly chained in the destination table, leaving > only the previously migrated rows there.) > > Regards, > > mwf > > -----Original Message----- > From: oracle-l-bounce@xxxxxxxxxxxxx > [mailto:oracle-l-bounce@xxxxxxxxxxxxx] > On Behalf Of Steve Adams > Sent: Tuesday, October 28, 2008 4:42 PM > To: Jay.Miller@xxxxxxxxxxxxxxxx > Cc: oracle-l@xxxxxxxxxxxxx > Subject: Re: Chained vs. migrated rows - Any easy way to tell the > difference? > > Hi Jay, > > You can tell the difference between row migration and chaining by listing > the chained rows with ANALYZE table LIST CHAINED ROWS and then fetching the > first column from each "chained row" in a single query. The > > count of continued row fetches will be incremented for every migrated row, > but not for most chained rows (unless the first cut point happens to fall > with the first column, which should be rare). > > @ Regards, > @ Steve Adams > @ http://www.ixora.com.au/ - For DBAs > @ http://www.christianity.net.au/ - For all > > -----Original Message----- > Subject: Chained vs. migrated rows - Any easy way to tell the difference? > Date: Tue, 28 Oct 2008 15:27:51 -0400 > From: <Jay.Miller@xxxxxxxxxxxxxxxx> > To: <oracle-l@xxxxxxxxxxxxx> > Jay.Miller@xxxxxxxxxxxxxxxx wrote: > > We have two databases that are showing very high number of/ table > fetch > > continued row/ in v$sysstat each day and before doing a move or > > export/import or copying the rows off and reinserting them I was > hoping > > to find out if I'd really gain anything. > > > > All I found in the Oracle docs was the suggestion to assume they're > > migrated and if the fix doesn't work then that means they were really > > chained ( Note:122020.1). > > > > I'm considering using length() on all the columns and adding them > > together to find any rows that wouldn't fit in a block but was > wondering > > if there was an easier way. Besides, one of the tables (third party > > app) has a long raw column so there's no easy way to get the column > > length there. > > > > > > Thanks, > > Jay Miller > > > > > -- > //www.freelists.org/webpage/oracle-l > > > > > -- > //www.freelists.org/webpage/oracle-l > > > -- > //www.freelists.org/webpage/oracle-l > > > > [CONFIDENTIALITY AND PRIVACY NOTICE] > > Information transmitted by this email is proprietary to Medtronic and is > intended for use only by the individual or entity to which it is addressed, > and may contain information that is private, privileged, confidential or > exempt from disclosure under applicable law. If you are not the intended > recipient or it appears that this mail has been forwarded to you without > proper authority, you are notified that any use or dissemination of this > information in any manner is strictly prohibited. In such cases, please > delete this mail from your records. > > To view this notice in other languages you can either select the following > link or manually copy and paste the link into the address bar of a web > browser: http://emaildisclaimer.medtronic.com > -- > //www.freelists.org/webpage/oracle-l > > > -- Regards Zhu Chao www.cnoug.org