|
About the optimizer's selection of bulk fetch
When Derby retrieves data from a conglomerate, it can fetch more
than one row at a time. Fetching more than one row at a time is called bulk
fetch. By default, Derby fetches 16 rows at a time.
Bulk fetch is faster than retrieving one row at a time when a large number
of rows qualify for each scan of the table or index. Bulk fetch uses extra
memory to hold the pre-fetched rows, so it should be avoided in situations
in which memory is scarce.
Bulk fetch is automatically turned off for updatable cursors, for hash
joins, for statements in which the scan returns a single row, and for subqueries.
It is useful, however, for table scans or index range scans:
SELECT *
FROM Flights
WHERE miles > 4
SELECT *
FROM Flights
The default size for bulk fetch (16 rows) typically provides good performance.
|