# Thread: Question Regarding Row migration

1. Junior Member
Join Date
Apr 2008
Location
Bangalore
Posts
96

## Question Regarding Row migration

Can anyone explain in detail how row migration...What i read from documentation is that when the existing block becomes full then all the row in that block will be migrated to a new block....

My question is all the blocks will be of same size then how will this work...Will there be any kind of defragmentation happen?

Join Date
Sep 2002
Location
England
Posts
7,334
learn the difference row migration and chaining

then learn what defragmentation is and how it is impossible with lmt's

3. Junior Member
Join Date
Apr 2008
Location
Bangalore
Posts
96
Well lets get it straight...

I know that row chaining occurs when an insert is happening into a block and teh space inside that is not sufiicient then the row will be chained to another block...

Row migration will happen as the data grows....

Can you please take a minute and explain me how does row migration work...?

4. Originally Posted by Mohith123
Well lets get it straight...

I know that row chaining occurs when an insert is happening into a block and teh space inside that is not sufiicient then the row will be chained to another block...

Row migration will happen as the data grows....

Can you please take a minute and explain me how does row migration work...?
mmhhh... not exactly.

Row MIGRATION will occur when an update on affected row makes it grow large enough not fit anymore on the original block then the row gets migrated to a different block leaving behind a pointer.

Row CHAINING will occur when a row is larger than a single data block then the row will be split into more than one data block.

5. Junior Member
Join Date
Apr 2008
Location
Bangalore
Posts
96

Row MIGRATION will occur when an update on affected row makes it grow large enough not fit anymore on the original block then the row gets migrated to a different block leaving behind a pointer.

All the block sizes will be uniformly sized(say 8k,i know there can be blocks of different sizes).So how will row migration work...according to definition when a row no more fits into a block then entire row will move to a new block leaving behind a pointer?but wont the new block be of the same size?

Join Date
Sep 2002
Location
England
Posts
7,334
Originally Posted by Mohith123

Row MIGRATION will occur when an update on affected row makes it grow large enough not fit anymore on the original block then the row gets migrated to a different block leaving behind a pointer.

All the block sizes will be uniformly sized(say 8k,i know there can be blocks of different sizes).So how will row migration work...according to definition when a row no more fits into a block then entire row will move to a new block leaving behind a pointer?but wont the new block be of the same size?
again, you are confusing chaining with migration

look them up

7. Junior Member
Join Date
Apr 2008
Location
Bangalore
Posts
96
I am not confusing the one with other...can you please give me the definitions and i will ask you a question based on your definition

8. Junior Member
Join Date
Apr 2008
Location
Bangalore
Posts
96
or can you please go through my previous post

9. Originally Posted by Mohith123
but wont the new block be of the same size?
Yes but, block size is inmaterial.

Picture this, you have lets say 10 rows comfortable sitting in a data block that has lets say 2048 bytes free then application updates one column on one of those rows, lets say a column of the varchar2(4000) datatype increasing size of that specific column form null to 3500 bytes then guess what? affected row doesn't fit anymore on original data block so it has to be migrated - leaving behind a pointer.

10. Originally Posted by Mohith123
I am not confusing the one with other
By the way, Dave is right ... you are confusing one with the other.

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•