Use EXISTE en lugar de DISTINTO
Puede suprimir la visualización de filas duplicadas usando DISTINCT; usa EXISTS para verificar la existencia de filas devueltas por una subconsulta. Siempre que sea posible, debe usar EXISTS en lugar de DISTINCT porque DISTINCT ordena las filas recuperadas antes de suprimir las filas duplicadas.
en su caso, habría muchos datos duplicados, por lo que la existencia debería ser más rápida.
por http://my.safaribooksonline.com/ libro/-/9780072229813/ajuste-sql-de-alto-rendimiento/ch16lev1sec10