Good afternoon, Tom.
I've started working for a new company recently and was just assigned a ticket regarding a "Free Space Fragmentation Index" warning for the SYSTEM tablespace of one of our databases (something I never ran into at my previous job). The first thing I did was check to see whether this tablespace is locally managed or not:
SELECT tablespace_name, extent_management
FROM dba_tablespaces
WHERE tablespace_name = 'SYSTEM';
TABLESPACE_NAME EXTENT_MAN
------------------------------ ----------
SYSTEM DICTIONARY
The ticket mentions an FSFI of 14.14, so I ran the following query to confirm:
SELECT Tablespace_Name,SQRT( MAX( Blocks ) / SUM( Blocks ) ) * (100 / SQRT( SQRT(COUNT(Blocks ) ) ) ) AS FSFI FROM DBA_Free_Space GROUP BY Tablespace_Name;
TABLESPACE_NAME FSFI
------------------------------ ----------
SYSTEM 14.1405943
Since the tablespace is not locally managed, I attempted to coalesce it:
ALTER TABLESPACE SYSTEM COALESCE;
But that did nothing to improve the FSFI:
SELECT Tablespace_Name,SQRT( MAX( Blocks ) / SUM( Blocks ) ) * (100 / SQRT( SQRT(COUNT(Blocks ) ) ) ) AS FSFI FROM DBA_Free_Space GROUP BY Tablespace_Name;
TABLESPACE_NAME FSFI
------------------------------ ----------
SYSTEM 14.1405943
Am I taking the wrong approach to this problem? Is this even a problem? Any insight on how I could proceed would be greatly appreciated.
Wow...If memory serves, the "Free Space Fragmentation Index" came from an Kevin Loney book back in the days of Oracle 8.0 (or perhaps even earlier).
If anyone is using that as a core metric, then I'm ...worried :-)
Unless you can map an explicit performance issue your database is having to this metric, then I can't see a reason for looking at it.
I'd be more inclined to create a ticket to migrate that SYSTEM tablespace to locally managed at the next downtime window and forget about it.