Es spielt da keine Rolle ob du über OLEDB oder ODBC zugreifst, das Ergebnis auf der AS/400 ist auf jeden Fall SQL.
Auch wenn du keinen Einfluss auf das Design hast, kannst du den Zugriff beschleunigen in dem du z.B. per CREATE INDEX zusätzliche Zugriffspfade z.B. in der QGPL anlegst (abhängig von der Sortierung/Gruppierung/Joins usw.), oder per Debugmodus den Hinweisen im Joblog folgst.

Der OLEDB-Treiber des CA (IBMDA400) ist nachweislich schlechter als der ODBC-Treiber. Es gibt keinen nennenswerten Unterschied, ob du per DAO mittels ODBC oder per OLEDB mit dem MSDASQL->ODBC zugreifst.

Was den Querytimeout angeht, so kannst du
a) bei DAO mittels QueryDef.QueryTimeout
b) bei OLEDB mittels Command.CommandTimeout
die Abfragezeit beeinflussen (Default = 30).