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?
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...?
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.
Disclaimer: Advice is provided to the best of my knowledge but no implicit or explicit warranties are provided. Since the advisor explicitly encourages testing any and all suggestions on a test non-production environment advisor should not held liable or responsible for any actions taken based on the given advice.
Well well exactly you have come to the question which i had initially asked:Let me ask it by first posting your answer
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?
Well well exactly you have come to the question which i had initially asked:Let me ask it by first posting your answer
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?
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.
Disclaimer: Advice is provided to the best of my knowledge but no implicit or explicit warranties are provided. Since the advisor explicitly encourages testing any and all suggestions on a test non-production environment advisor should not held liable or responsible for any actions taken based on the given advice.
Disclaimer: Advice is provided to the best of my knowledge but no implicit or explicit warranties are provided. Since the advisor explicitly encourages testing any and all suggestions on a test non-production environment advisor should not held liable or responsible for any actions taken based on the given advice.
Bookmarks