Hola
solosoy, no es que se cuelgue, es solo que estas ejecutando esa busqueda en el mismo plano de tu aplicación, y tarda su respuesta, para ello deberias ejecutar en 2do plano como dice
Dradi7 usando
delegate y thread para que al menos tu interfaz muestre mediante un progressbar o un mensaje que se está ejecutando dicha consulta. Saludos!

.