Use SQLiteStatement.compileStatement, I do believe it should be faster
with my 10 years database programming  experience, though I didn't
test, Let  me know if you have a result.

Here is some code from my Remote RDP program for importing data to the
table:

                        SQLiteStatement sls = 
db.compileStatement(sb.toString());

                        while ((line = br.readLine()) != null) {
                                st.reset(line, delimiter);
                                for (int i = 0; i < columns; i++) {
                                        String value = st.next();
                                        if (value == null){
                                                value   = "";
                                        }
                                        sls.bindString(i + 1, value);
                                }
                                sls.execute();
                        }



On Apr 13, 1:47 am, Alok Kulkarni <kulsu...@gmail.com> wrote:
> @mobDev, I have followed some links , 
> examplehttp://www.higherpass.com/Android/Tutorials/Accessing-Data-With-Andro...
> where they were doing setTransactionSuccessful before ending transaction.
> Removing that statement does not have an effect.
> Even if i do say
> String tempName = "Artist";
> String tempVal = "Enrique";
> int tempId = 0;
> for(i = 0;i< 7000;i++)
> {
> tempId++;
> addArtistDB(tempID,tempName,tempVal1);}
>
> It takes 20 seconds .So there is not much time required for accessing the
> data i want to put into database. The actual insertion itself is taking so
> much time.
> As Sqlite is native to Android , i assume it must be fast enough.
> One more thing , Same amount of insertions on a Windows Mobile Device ,
> using a Third Party SQLite DLL , its taking 5 to 6 seconds..
> Its not that i am blaming android , but i am getting frustrated now :( :(
>
> Thanks ,
> Alok.
>
>
>
> On Tue, Apr 13, 2010 at 1:07 PM, Alok Kulkarni <kulsu...@gmail.com> wrote:
> > @mobDev, Ending transaction
>
> > On Tue, Apr 13, 2010 at 12:59 PM, Alok Kulkarni <kulsu...@gmail.com>wrote:
>
> >> I do not have any indices for my tables at all.
> >> Each of the tables Artist, Albumn and Songs has 4,5,5 columns
> >> respectively.
> >> Using Raw query as Yahel said improves the speed to some extent .
> >> Inserting 7000 records takes 18 seconds instead of 22 but thats not much as
> >> in total , i am going to insert 30000 to 40000 entries , which will take
> >> hell lot of time..
> >> Using raw queries is not much helpful as the data itself might contain
> >> quotes and double quotes.
> >> Thanks ,
> >> Alok.
>
> >> On Tue, Apr 13, 2010 at 11:32 AM, Bob Kerns <r...@acm.org> wrote:
>
> >>> It is often better to insert all the data and THEN create the indexes.
> >>> I couldn't tell you about Sqlite.
>
> >>> You may want to create the primary index, but create all the other
> >>> indexes later.
>
> >>> On Apr 12, 5:33 pm, Zsolt Vasvari <zvasv...@gmail.com> wrote:
> >>> > No, database writing is extremely slow especially with many indecies.
>
> >>> > In my app, I am getting maybe 10 insers a seconds into a table with 20
> >>> > columns and 15 indecies.  As my app is probably 99.9% reads, I didn't
> >>> > try optimizing the writes too much, not sure if it's even possible.
>
> >>> > On Apr 13, 12:33 am, Yahel <kaye...@gmail.com> wrote:
>
> >>> > > Ok, you are right if the pre and the iphone are 10x faster, it can't
> >>> > > be right.
>
> >>> > > I don't see anything wrong in your code, so only two things come to
> >>> > > mind :
>
> >>> > > - Instead of using ContentValues, try to create an insert sql
> >>> > > statement and send it to via SQLiteDatabase.execSQL to see if there
> >>> is
> >>> > > any improvement
> >>> > > - Maybe it's not the database writing that is slow but the reading
> >>> > > from wherever your getting the data ?
>
> >>> > > Yahel
>
> >>> > > On 12 avr, 12:31, Alok Kulkarni <kulsu...@gmail.com> wrote:
>
> >>> > > > Ok,
> >>> > > > @Yahel:- For the insertion of same records on a Palm device(Say
> >>> Palm Pre) ,
> >>> > > > its taking 3 seconds..
> >>> > > > On an IPhone , its taking 1 or  2 seconds..
> >>> > > > Here is an example of what i am doing..
> >>> > > > private Boolean addAlbumDB(int AlbumId, String Name, String Label,
> >>> > > >             int MultipleArtists, int ArtistId) {
> >>> > > >         long result = -1;
>
> >>> > > >         try {
>
> >>> > > >             ContentValues initialValues = new ContentValues();
> >>> > > >             initialValues.put(KEY_ID, AlbumId);
> >>> > > >             initialValues.put(KEY_NAME, Name);
> >>> > > >             initialValues.put(KEY_LABEL, Label);
> >>> > > >             initialValues.put(KEY_ARTIST_ID, ArtistId);
> >>> > > >             initialValues.put(KEY_MULTIPLE_ARTISTS,
> >>> MultipleArtists);
>
> >>> > > >              result = db.insert(DATABASE_TABLE, null,
> >>> initialValues);
>
> >>> > > >         } catch (Exception e) {
> >>> > > >             Log.i("Exception in addAlbumDB", "" + e.toString());
> >>> > > >             return false;
> >>> > > >         }
>
> >>> > > >         if (result == -1)
> >>> > > >             return false;
> >>> > > >         return true;
> >>> > > >     }
>
> >>> > > > The above function is called for around 2000 times..
> >>> > > > Similarly there are 2 3 more functions for other tables.
> >>> > > > Thanks,
> >>> > > > Alok.
>
> >>> > > > On Mon, Apr 12, 2010 at 2:33 PM, Michael Rueger <
> >>> mike.rue...@gmail.com>wrote:
>
> >>> > > > > On 4/12/2010 10:59 AM, Yahel wrote:
>
> >>> > > > >> Hi Alok,
>
> >>> > > > >> Posting some logic, or some sql would help us see if you are
> >>> missing
> >>> > > > >> something :)
>
> >>> > > > > (excessive) use of indices comes to mind :-)
>
> >>> > > > > Michael
>
> >>> > > > >> Yahel
>
> >>> > > > >> On 12 avr, 08:50, Alok Kulkarni<kulsu...@gmail.com>  wrote:
>
> >>> > > > >>> Hi,
> >>> > > > >>> I am inserting around 7000 to 8000 records in my database
> >>> having 4 tables
> >>> > > > >>> each having 3 to 4 columns.Its taking me around 22 seconds to
> >>> do the
> >>> > > > >>> insertion which is i think is too long. I am using transaction
> >>> while
> >>> > > > >>> doing
> >>> > > > >>> this without which its taking around 55 seconds.
> >>> > > > >>> According to SQLite documentation , inserting 10000 records in
> >>> a database
> >>> > > > >>> takes time  around 2 to 3 seconds.
> >>> > > > >>> Am i missing something , or is the behaviour correct?
> >>> > > > >>> Thanks,
> >>> > > > >>> Alok
>
> >>> > > > > --
> >>> > > > > You received this message because you are subscribed to the
> >>> Google
> >>> > > > > Groups "Android Developers" group.
> >>> > > > > To post to this group, send email to
> >>> android-developers@googlegroups.com
> >>> > > > > To unsubscribe from this group, send email to
> >>> > > > > android-developers+unsubscr...@googlegroups.com<android-developers%2Bunsubs
> >>> > > > >  cr...@googlegroups.com><android-developers%2Bunsubs
> >>> cr...@googlegroups.com>
> >>> > > > > For more options, visit this group at
> >>> > > > >http://groups.google.com/group/android-developers?hl=en
>
> >>> > > > > To unsubscribe, reply using "remove me" as the subject.- Hide
> >>> quoted text -
>
> >>> > > - Show quoted text -
>
> >>> --
> >>> You received this message because you are subscribed to the Google
> >>> Groups "Android Developers" group.
> >>> To post to this group, send email to android-developers@googlegroups.com
> >>> To unsubscribe from this group, send email to
> >>> android-developers+unsubscr...@googlegroups.com<android-developers%2Bunsubs
> >>>  cr...@googlegroups.com>
> >>> For more options, visit this group at
> >>>http://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to