Sto lavorando a un progetto di grandi dimensioni in cui devo presentare un modo efficiente per l'utente di immettere dati in un modulo.Ottimizzazione del completamento automatico per set di dati di grandi dimensioni
Tre dei campi di tale modulo richiedono un valore da un sottoinsieme di un'origine dati comune (tabella SQL). Ho usato JQuery e JQuery UI per creare un completamento automatico, che pubblica un HttpHandler generico.
Internamente il gestore utilizza Linq-to-sql per prelevare i dati richiesti da quella tabella specifica. La tabella ha circa 10 diverse colonne e l'espressione linq utilizza lo SqlMethods.Like() per abbinare il termine di ricerca singolo su ciascuno di quei 10 campi.
Il problema è che quella tabella contiene alcune righe 20K. Il completamento automatico funziona perfettamente, accetta l'enorme volume di dati che introduce deleays, in prossimità di circa 6 secondi (durante il debug sul mio computer locale) prima che si presenti.
Il completamento automatico di JqueryUI ha 0 ritardo, le query sul tasto 3 e il risultato del post viene effettuato in opzioni selezionabili su più righe in stile Facebook. (Ho quasi dovuto riscrivere il plugin di completamento automatico ...).
Quindi il problema è data vs. velocità. Qualche idea su come accelerare questo? Gli unici due pensieri che avevo erano di memorizzare i dati nella cache (come/dove?); o utilizzare il lettore di dati SQL diretto per l'accesso ai dati?
Qualsiasi idea sarebbe molto apprezzata! Grazie,
<bleepzter/>
Grazie, grazie, grazie! Ha funzionato come un fascino! – bleepzter
Ottimo approccio al completamento automatico mi sembrava simile a questa soluzione –