Das kann ich schon verstehen. Allerdings habe ich auch schon Anwendungen gesehen, die deshalb langsam waren, weil sie einfach zu viele Daten überlesen müssen an Stelle sich eine View/LF/Index aufzubauen, mit dem man direkt nur die benötigten Daten liest.
Da ist eine Optimierung im Millisekundenbereich nicht so besonders zielführend.

Und eine DB, die komplett in den Speicher passen soll erlebt man da auch eher selten.
Ggf. haben deine Zugriffszeiten mit dem eigentlichen DB-Zugriff gar nichts zu tun sondern mit dem Verdrängungswettbewerb der Non-DB-Seiten. M.a.W., das Nachladen von Programmcode ist die Ursache, da zu viel Speicher durch den SETOBJACC-Pool blockiert ist.

Hast du denn mal komplett ohne SETOBJACC getestet?