Muito simples.
-- Para você ter um performance boa para inserir registros, primeiramente você tem que abrir uma Transaction, depois dentro de um for ou qualquer laço de repetição utilizar o SQLiteStatement e no final não esquecer de TransactionSuccessful. Mais dicas, utilizar este post no StackOverflow.
Creio que se você utilizar essa estrutura 500 registros, vai ser coisa de menos de 1 segundo.
Eu utilizo assim e cerca de 20k de registro com 23 campos, dura em media 2 segundo dependendo do aparelho.
Att.
Cleber
Em 13 de janeiro de 2016 16:08, Athila Santos <athilahs@gmail.com> escreveu:
Apenas um heads-up:InsertHelper está deprecated na API 17. Utilize SQLiteStatement. Não sei se terá o mesmo ganho que o Diego citou, mas vale a pena tentar.--Em 13 de janeiro de 2016 14:01, Diego Melo <diegomeloadm@gmail.com> escreveu:Eu tive esse problema. No meu caso eram mais de 20k em registros que precisa inserir.Eu estava tendo uma demora de mais de 5 min para isso então fiz um insert em batch e o tempo caiu para em torno de 20ssegue um exemploSQLiteDatabse db = getWriteableDatabase(); //use the db you would normally use for db.insert, and the "table_name" //is the same one you would use in db.insert() InsertHelper iHelp = new InsertHelper(db, "table_name"); //Get the indices you need to bind data to //Similar to Cursor.getColumnIndex("col_name"); int first_index = iHelp.getColumnIndex("first"); int last_index = iHelp.getColumnIndex("last"); try { db.beginTransaction(); for(int i=0 ; i<num_things ; ++i) { //need to tell the helper you are inserting (rather than replacing) iHelp.prepareForInsert(); //do the equivalent of ContentValues.put("field","value") here iHelp.bind(first_index, thing_1); iHelp.bind(last_index, thing_2); //the db.insert() equilvalent iHelp.execute(); } db.setTransactionSuccessful(); } finally { db.endTransaction(); } db.close();
Em sexta-feira, 20 de novembro de 2015 11:39:16 UTC-2, kalinn...@gmail.com escreveu:Estou utilizando Active Android para o banco de dados.No momento do login, faço uma requisição no webservice e ele me retorna um pouco mais de 500 registros para serem inseridos no banco.Portanto, ele demora em média uns 30 segundos para fazer todo o processamento.O que vocês me sugerem para tentar amenizar esse problema?Pensei em deixar esse conteúdo estático e toda vez que o aplicativo for instalado pela primeira vez, ele faz essas inserções.Alguém poderia me dar uma luz?Obrigada--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
0 comentários:
Postar um comentário