Dies hat nichts mit der Art des SQL's zu tun sondern mit einem fehlenden Index.
Deine Suche ergibt einen Tablescan.
Zusätzlich machst du das auch noch 171 Mal.

Lege einen Index für deine Suchdatei an und mach genau einen SQL.

select kdnr, count(*) from mytable a
where exists (select * from kdnrtable b where a.kdnr = b.kdnr)
group by kdnr

Innerhalb des subselects kannst du auch Anpassungen vornehmen:

select kdnr, count(*) from mytable a
where exists (select * from kdnrtable b where dec(a.kdnr, 7, 0) = b.kdnr)
group by kdnr