[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sqlite-users
Subject:    Re: [sqlite] Optimizing an insert/update
From:       Dennis Cote <dennis.cote () gmail ! com>
Date:       2008-02-29 16:47:53
Message-ID: 47C83739.5000907 () gmail ! com
[Download RAW message or body]

Michael Miller wrote:
> I apologize if this is a double-post; I just got approved for the mailing
> list, and I can't find the older message in the archives, so I'm reposting
> it.
> 
> I have a table with two columns, the first with a string and the second with
> an integer.
> 
> 
> Given a set of input strings, I want to perform this operation 50,000+ times
> preferably in a single transaction: "If the string doesn't exist in the
> table, create a new row with the string in the first column and 1 in the
> second column. If the string does exist in the table, increment the second
> column by 1"
> 
> 
> What I am doing now is using the UPDATE statement, and checking (via C#) the
> number of rows affected, and if this is zero, running an insert statement.
> Doing this 50,000 times, without an encapsulating transaction, is an
> expensive operation.
> 
> 
> Is there any way to encapsulate this into SQL so that no outside interaction
> in C# is needed to perform this operation, and so I can put 50,000 of these
> into a transaction and commit all at once?
> 
> 
> Thanks,
> 
> Mike
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> 

See this thread from last week 
http://article.gmane.org/gmane.comp.db.sqlite.general/35829/match=easy+question+concerning+c%2b%2b+sqlite3


This exact issue was discussed.

You can prepare the query once, and execute it 50K times in a 
transaction to quickly enter all your words.

HTH
Dennis Cote
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic