elvistheprince,
I also saw that for some reason SQL became extremely slow when given the large number of values in the IN clause.
I'd try some workarounds for that:
1. If the list of postcodes is a result of some other query I'd use it as a subquery rather than passing the list of codes.
2. Maybe you can build a temp table with all the postcodes and rewrite your query to use a join.