Use EXISTS em vez de DISTINCT
Você pode suprimir a exibição de linhas duplicadas usando DISTINCT; você usa EXISTS para verificar a existência de linhas retornadas por uma subconsulta. Sempre que possível, você deve usar EXISTS em vez de DISTINCT porque DISTINCT classifica as linhas recuperadas antes de suprimir as linhas duplicadas.
no seu caso haveria muitos dados duplicados então os existentes deveriam ser mais rápidos.
por http://my.safaribooksonline.com/ book/-/9780072229813/high-performance-sql-tuning/ch16lev1sec10