Te cuento lo que yo suelo hacer (aunque, seguro, habrá otras opiniones):
- En cuanto a rendimiento, son bastante similares. No se ejecutan en servidor, sino en el cliente, pero ambas opciones están bien optimizadas ya que usan índices, no simples filtros.
- Para búsquedas sencillas (es decir, las que se pueden hacer con un cargar lista), yo suelo usar Cargar lista (no tengo que crear otro objeto -la búsqueda-, y además una variable global, sino que lo uso sobre la marcha).
- Habrá búsquedas (entre límites, o que usan varios índices a la vez) que no se podrán ejecutar como un cargar lista, y entonces ya no hay elección posible: tendrás que usar la búsqueda.
En tablas con pocos registros, apenas notaras la diferencia.
Pero si tenemos muchos registros, en conveniente utilizar busquedas, que siempre se ejecutan en el servidor.
Los procesos, para ejecutarlos en 3º plano (en el servidor) deben ser ejecutados desde otro proceso o evento (excepto los eventos de tabla que se ejecutan directamente en el servidor)
Desde luego, con estas respuestas, (y sobre todo por performance) entiendo entoces que lo mejor es hacer busquedas en el proyecto de datos, y abrirlas en 3 plano...
si tenemos una base de datos potente... demostremoslo!, no?