Indistintamente de que hagas el sql como quieres... lo que es una barbaridad es tener más de 20.000 registros en un listview, ¿para qué se necesita hacer eso?

, ¿por qué no filtras antes los registros y trabajas sólo con los que realmente necesitas?, dudo que alguien se ponga en la pantalla a mirar 20.000 registros, no?