El procesamiento con lentitud puede ser por la cantidad de datos que estas seleccionando con tu consulta. Lo que puedes hacer es utilizar un Datareader para la Extracción de Datos y luego cargarlo con el evento
LOAD del datatable. Tu performance puede aumentar un poco, puedes intentarlo.
Te dejo un link para que consultes
http://msdn2.microsoft.com/en-us/lib...able.load.aspx