Μάλλον πρέπει να ξανασκεφτείς αυτό που θέλεις να κάνεις. Κανένας χρήστης, Ο,ΤΙ και να λέει, δεν θέλει να ψάχνει μόνος του σε εκατομμύρια rows (για να μην πούμε για την φρικτή κατανάλωση μνήμης και τις καθυστερήσεις που θα προκληθούν). Αν σου λένε ότι θέλουν να τα γυρίσουν όλα, κάτι άλλο συμβαίνει. Μπορεί να θέλουν κάποιο search το οποίο λείπει από την εφαρμογή σου, μπορεί να θέλουν να δουν ταξινομημένα κάποια δεδομένα για να τα τυπώσουν, μπορεί να θέλουν κάτι άλλο. Αυτό που ΠΟΤΕ δεν θέλουν, είναι να ψάχνουν μία-μία μερικές χιλιάδες εγγραφές - πόσο μάλλον εκατομμύρια.
Από εκεί και πέρα, υπάρχουν αρκετοί τρόποι να φορτώσεις μόνο τα δεδομένα που θέλει να δει ο χρήστης χωρίς να φορτώσεις το σύμπαν.
- Η απλούστερη λύση φυσικά είναι να χρησιμοποιήσεις paging (εννοείται σε επίπεδο βάσης) έτσι ώστε το grid να φορτώνει μόνο λίγα δεδομένα τη φορά. Βέβαια, σα λύση δεν είναι πολύ καλύτερη από το "φέρτα όλα" καθώς πάλι δεν αναγνωρίζεις και δεν λύνεις το πρόβλημα των χρηστών.
- Αν αυτό που θέλουν οι χρήστες είναι η αναζήτηση, μία πολύ καλύτερη λύση είναι να υλοποιήσεις search-as-you-type έτσι ώστε ο χρήστης να μπορεί να ψάξει γρήγορα γι αυτό που θέλει. Αν μάλιστα συνδυάσεις τη λύση αυτή με paging, θα αντιμετωπίσεις και το πιθανό πρόβλημα να φορτωθούν πάρα πολλές εγγραφές όταν ο χρήστης εισάγει τα πρώτα 1-2 γράμματα.
- Μήπως οι χρήστες θέλουν όλες τις εγγραφές για να τυπώσουν "σεντόνια"? Αυτό λέγεται "report" και δεν γίνεται με ένα grid. Σε αυτή την περίπτωση θα πρέπει να χρησιμοποιήσεις κάποιο εργαλείο για reporting για να φτιάξεις τα reports που σου ζητάνε
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos