Disclaimer

Monday, 18 November 2024

Index Full Scan Vs Index Fast Full Scan in Oracle

 

The choice between Index Full Scan and Index Fast Full Scan depends on the query requirements and data access patterns. Here’s a simplified explanation:






Index Full Scan

  • How it works: Oracle reads the index sequentially, from the lowest to the highest value (or vice versa). It uses the sorted order of the index to retrieve data efficiently.
  • When it's used:
    • When your query requires the data in sorted order.
    • If the query needs to use the indexed column(s) directly or to locate table rows through a pointer (ROWID).
  • Key feature: It reads the entire index but in order, making it ideal for queries needing sorted results.

Example:

SELECT SALARY
FROM EMPLOYEES ORDER BY SALARY;

If SALARY has an index, Index Full Scan is better because it retrieves the data in sorted order directly.





Index Fast Full Scan

  • How it works: Oracle reads the index blocks as if they were a mini table, bypassing the need to sort the data or even access the table rows.
  • When it's used:
    • When the query does not need the data in sorted order.
    • When the query involves only the indexed columns (so no need to access the table).
  • Key feature: It reads the entire index but in an unordered manner, which can be faster for some queries.

Example:


SELECT SALARY FROM EMPLOYEES;

Here, Index Fast Full Scan might be better because the query doesn’t need sorting or table data.





Which is Better?

  • Index Full Scan: Best for queries needing sorted data or those accessing table rows through the index.
  • Index Fast Full Scan: Best for queries that only need the indexed columns and do not care about sorted order.



Analogy

Think of the index as a library catalog:

  • Index Full Scan: You’re reading the catalog in alphabetical order, which is helpful if you're looking for all books by a specific author.
  • Index Fast Full Scan: You’re flipping through the catalog pages quickly to find a specific keyword, ignoring the order of entries.



Performance Considerations

  • Index Fast Full Scan can be faster because it doesn’t maintain order or access table rows unless required.
  • Index Full Scan can be slower for larger datasets but is necessary for ordered results or joins.

Both scans have their place, and the Oracle optimizer chooses the best option based on query requirements and statistics.





No comments:

Post a Comment

How to recovery PDB when PDB database is dropped in Oracle

  How to recovery PDB when PDB database is dropped :) [oracle@rac01 ~]$ sqlplus '/as sysdba' SQL*Plus: Release 21.0.0.0.0 - Product...