A database query processor includes a database join prefetcher that prefetches N next join column values in order to execute the query more efficiently. The prefetched next join column values for an inner table are used to skip rows in an outer table, thereby increasing the performance of executing the query. The number N of prefetches can be dynamically determined and adjusted to improve the performance of executing the query.