Obligátní otázka - k čemu potřebuje uživatel vidět přes 2000 řádků?
Nebylo by rychlejší to mít rovnou v jednom datasetu vrácené z SQL serveru?
Další možností je vyřešit to "psychologicky" - zpracovat prvních 50 řádků, ty zobrazit a zbytek dodělat na pozadí. Než si uživatel prohlédne to, co mu naservíruješ, má k dispozici vše.