2012-09-02 10 views
12

Sto utilizzando le seguenti righe per il loop su righe di una query Sqlite.Esiste un modo più rapido per scorrere le righe dalla query Sqlite?

this.open(); // opening db 
Cursor cursor = db.rawQuery(strQuery, null); 

cursor.moveToFirst(); 
do {  

    // do something  

} while (cursor.moveToNext()); 

cursor.close(); 

Quando il numero di righe è circa 15000, richiede molto tempo. Sono necessari circa 4 secondi per il blocco while vuoto e circa 6 secondi per il blocco while con alcuni codici. Mostra che iterare su file in questo modo richiede molto tempo.

Esiste un modo più rapido per eseguire il ciclo su file in Android e Sqlite?

Grazie,

+0

non sono sicuro dei vostri casi d'uso per SQLite, ma questo può essere utile: http://shopwith.it/2011/12/16/how-to-improve-android -app-performance-by-caching-data-in-sqlite-and-images-to-sd-card-android-developer-tips/ – Eric

+0

Se sei pronto, puoi spiegare perché è necessario recuperare così tanti dischi contemporaneamente? Inoltre non puoi crollare a meno nella tua istruzione SELECT? –

risposta

4

Ottimizzazione ciò che si fa all'interno del ciclo è l'unico modo per migliorare la velocità di tutta l'operazione. Ad esempio se stai facendo chiamate getColumnIndex ad ogni iterazione, perderai tempo prezioso. Fallo una volta, memorizza il valore.

Utilizzare traceView per individuare dove stai perdendo tempo e migliorarlo lì. Purtroppo non posso dare una risposta concreta, dal momento che non so cosa stai facendo all'interno del ciclo.


Traceview Debugging

Problemi correlati