| From: | Steve Adams |
| Date: | 26-Oct-2000 16:05 |
| Subject: | How to determine the depth of row chaining |
|
|
To determine how many blocks a particular row is chained over, you have to navigate the row pieces and count the consistent gets. For example, the following row is neither chained nor migrated because only 1 buffer get is required. Of course, all the meta-data has to be cached in the library cache already, or there may be extraneous buffer gets associated with parsing.
SQL> select n.name, m.value from sys.v_$mystat m, sys.v_$statname n
2 where n.statistic# = m.statistic# and n.name = 'consistent gets';
consistent gets 2111
SQL> select * from my_dual where rowid = 'AAAA5RAADAAAOhDAAA';
X
SQL> select n.name, m.value from sys.v_$mystat m, sys.v_$statname n
2 where n.statistic# = m.statistic# and n.name = 'consistent gets';
consistent gets 2112
If you want this information for all the chained rows in a particular table,
then you can use the ANALYZE TABLE LIST CHAINED ROWS command to get the rowids,
and query each row in turn.
|
![]() |
How can I estimate the depth of a row (how many blocks a row is spread across, in rows that are chained)?
|