access, sto facendo delle prove di prestazioni per scegliere tra diverse soluzioni

ho due tabelle tab e tab2 popolate con 200000 numeri interi +- casuali, ogni campo è indicizzato... misuro i tempi di ogni query

rs.Open "select * from tab", objConn, adOpenKeyset, adLockOptimistic, adCmdText
response.write rs.recordcount
> ok, veloce

rs.Open "select distinct ccc from tab2 where ccc=5", objConn, adOpenKeyset, adLockOptimistic, adCmdText
response.write rs.recordcount
> ok, veloce

il problema nasce quando le annido

rs.Open "select tab.* from tab where tab.aaa not in (select distinct tab2.ccc from tab2 where tab2.ccc=5)", objConn, adOpenKeyset, adLockOptimistic, adCmdText

fin qui ok, veloce

appena provo ad eseguire rs.recordcount o a scorrere il recordset mi si impalla tutto

cosa mi sta sfuggendo?! grazie