Es ist doch logisch, das der Client dann lange benötigt. Filtere deine Daten, also lade nur die Werte, die man auch sehen kann, und lade bei Bedarf nach ('on-demand-fetching'). Das ist zwar etwas komplizierter, aber dann kannst Du in der DB 300.000.000.000.000 Werte haben (oder sogar noch mehr

) , deine Anwendung ist immer noch genauso schnell, wie am ersten Tag.
Über diese Technik gibt es hier diverse Threads. Wenn Du eine Tabelle mit sehr vielen Datensätzen hast, dann kannst Du z.B. die Werte 'häppchenweise' einladen. Wenn Du dann durch diesen Block durchscrollst und ans Ende stößt, lädst Du den nächsten Happen usw.
Wenn Du sehr viele Master-Detail-Beziehungen hast, dann lädst Du die Details nur dann, wenn der Anwender sie sehen will.
Na denn, dann. Bis dann, denn.