Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: Fragmentation query
I see no relationship between these two fragmentations. If your disk is highly
fragmented, your database tablespace (assuming you're talking about disk, not
memory such as SGA, fragmentation) could still contain most extents
contiguously. In this case, if you look at block_id and blocks of dba_extents
order by block_id, you see most extents bumper to bumper, so to speak. Oracle
knows nothing about the underlying OS fragmentation. On the other hand, if you
defragment the disk (while the database is shutdown of course), all OS blocks
are coalesced. But the Oracle extents could still contain the holes of empty
extents.
Defragmenting the disk at OS level definitely helps IO scan. After all, Oracle has to move the hard drive spindle to do physical reads. Defragmenting (coalescing) tablespaces in Oracle may or may not help physical reads as far as I understand. It helps disk space usage though.
The above said is only relevant to cooked file systems.
Yong Huang
yong321_at_yahoo.com
you wrote:
I'd like to try and understand the issues, if any, between fragmentation of a disk from operating system perspective vs fragmentation from Oracle's perspective. How, if at all are the two types of fragmentation connected?. Are there issues for Oracle if a disk defragmenter is used at OS level or is Oracle "insulated" from these changes. I'm thinking about a data file (OS level) which contains a tablespace with it's selection of tables, each of which is composed of extents etc. etc. and trying to piece it all together. Is the OS and Oracle talking at some level and exchanging information about what they've re-arranged?. I suspect I'm missing some thing obvious in above but would appreciate any help, white paper, manual references that may help clarify the above for me.
Sean :)
![]() |
![]() |