Använd EXISTS istället för DISTINCT
Du kan undertrycka visningen av dubbletter av rader med DISTINCT; du använder EXISTS för att kontrollera om det finns rader som returneras av en underfråga. När det är möjligt bör du använda EXISTS istället för DISTINCT eftersom DISTINCT sorterar de hämtade raderna innan de dubblerade raderna undertrycks.
i ditt fall skulle det finnas många duplicerade data, så det borde gå snabbare.
av http://my.safaribooksonline.com/ book/-/9780072229813/high-performance-sql-tuning/ch16lev1sec10