Esegui la subquery per conto suo e vedi tempi e risposte. Tieni presente che IN() e di fatto una sequenza di OR ed e' anche la cosa tra le piu' pesanti per la ricerca, ma 16000 record per un db sono un nulla. Forse devi gestire meglio gli indici.