acid18 Δημοσ. 17 Απριλίου 2014 Δημοσ. 17 Απριλίου 2014 Έχω ένα TextBox όπου ο χρήστης βάζει ένα όνομα που θέλει να ψάξει, Θέλω όταν βάλει ένα γράμμα να δείξω αυτά που ταιριάζουν σε αυτό που έγραψε (κάτι σαν autocomplete) Αυτό που κάνω είναι στο event textbox_textChanged κάνω query select * from table where name like txtbox.text% Αλλά είναι πολύ αργό στη βάση υπάρχουν 3000 εγγραφές και για να φέρει τα δεδομένα κάνει 4-5 sec. Υπάρχει κάποιος πιο αποδοτικός τρόπος για να γίνει γρήγρα? Η βάση είναι sqlite.
defacer Δημοσ. 17 Απριλίου 2014 Δημοσ. 17 Απριλίου 2014 Σε πρώτη φάση βάλε index στο name και διάβασε αυτά για να σιγουρευτείς πως θα χρησιμοποιείται το index που έβαλες. Επίσης σίγουρα είναι αυτό το query που δίνεις; Ακόμα και χωρίς index 4-5 sec για να ψάξει 3000 records είναι υπερβολικά μεγάλο χρονικό διάστημα. Ίσως μπαίνει και κάποιος άλλος παράγοντας στη μέση;
iniohos Δημοσ. 17 Απριλίου 2014 Δημοσ. 17 Απριλίου 2014 select * from table where name like txtbox.text% περα απο αυτο που σου ειπε ο defacer που ειναι το πρωτο που θα πρεπει να διορθωσεις........select *.....? Τελικα ειναι αληθεια αυτο που λενε πως οση υπολογιστικη δυναμη και να δωσεις στους προγραμματιστες, παντα καπου θα κρυβετε ενα select all..... σοβαρα τωρα, αν θες να σου φερει μονο ενα πεδιο, θα διαλεξεις στο select το ενα αυτο πεδιο, αν θες 2 θα διαλεξεις 2 κλπ. To select all επιβαρυνει χωρις λογο την διαδικασια. http://triakilakodika.gr/post/2013/09/18/dba-select
acid18 Δημοσ. 17 Απριλίου 2014 Μέλος Δημοσ. 17 Απριλίου 2014 (επεξεργασμένο) Σε πρώτη φάση βάλε index στο name και διάβασε αυτά για να σιγουρευτείς πως θα χρησιμοποιείται το index που έβαλες. Επίσης σίγουρα είναι αυτό το query που δίνεις; Ακόμα και χωρίς index 4-5 sec για να ψάξει 3000 records είναι υπερβολικά μεγάλο χρονικό διάστημα. Ίσως μπαίνει και κάποιος άλλος παράγοντας στη μέση; Ευχαριστώ, θα δοκιμάσω αυτό που είπες. Είναι σε Windows Phone με sqlite-net ίσως γιαυτό ? select * from table where name like txtbox.text% περα απο αυτο που σου ειπε ο defacer που ειναι το πρωτο που θα πρεπει να διορθωσεις........select *.....? Τελικα ειναι αληθεια αυτο που λενε πως οση υπολογιστικη δυναμη και να δωσεις στους προγραμματιστες, παντα καπου θα κρυβετε ενα select all..... σοβαρα τωρα, αν θες να σου φερει μονο ενα πεδιο, θα διαλεξεις στο select το ενα αυτο πεδιο, αν θες 2 θα διαλεξεις 2 κλπ. To select all επιβαρυνει χωρις λογο την διαδικασια. http://triakilakodik...9/18/dba-select Στο πραγματικό κώδικα δεν βάζω * αλλά επιλέγω fields που χρειάζομαι, απλά το έβαλα πρόχειρα εδώ. Edit: Τελικά είχα κάνει χαζομάρα είχα στον κώδικα Debug.writeline και αυτό καθυστερούσε. Επεξ/σία 17 Απριλίου 2014 από acid18
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα