Използвайте EXISTS, а не DISTINCT
Можете да потиснете показването на дублиращи се редове, като използвате DISTINCT; използвате EXISTS, за да проверите за съществуването на редове, върнати от подзаявка. Когато е възможно, трябва да използвате EXISTS вместо DISTINCT, защото DISTINCT сортира извлечените редове, преди да потисне дублиращите се редове.
във вашия случай ще има много дублирани данни, така че съществуването трябва да е по-бързо.
от http://my.safaribooksonline.com/ book/-/9780072229813/high-performance-sql-tuning/ch16lev1sec10