Lo mas eficiente para realizar un filtro, es no hacerlo del lado del cliente, sino del lado del servidor. En otras palabras, en lugar de tener un dataset que haga un
Select * from tabla;
y luego filtrar los que tengan una fecha mayor a la del '1/ene/2003', es mucho mas eficiente tener un dataset que haga:
Select *
from tabla
where fecha > '1/ene/2003'
La eficiencia, por supuesto, dependerá de tu motor de base de datos. Lo que es recomendable en cualquier motor, es tener indices que ayuden a optimizar las consultas de acuerdo a los criterios de busqueda a utilizar.
Hasta luego.