On Wed, 14 Sep 2016 16:27:37 +0530
SinhaK <[email protected]> wrote:
> strlen(MyString.str().c_str())
BTW, as a matter of style,
MyString.str().size()
gets you to the same place sooner.
> MyString<<"select TokenNo,Price ,sum(QTY) from 'Stream0' where
> TokenNo=?1 and Side=66 group by Price order by Price desc limit 5";
You should group by TokenNo, Price. You should not have
'Stream0'
in single quotes; that makes it a string.
But I agree with Teg: SQLite is providing you with transactions you
don't need, and puts an interpreted language exactly where you don't
want it: in a performance-critical spot. The C++ standard library has
all the bits you need, and is almost as convenient to use.
You have only one table, and probably just a few simple queries.
std::set gives you lower_bound and upper_bound. Hand those two
iterators to std::accumulate, and you have GROUP BY. Call that for 5
prices. Not very much code, and I bet 100x faster than SQL. If more
than one thread is updating the table, obviously protect your set with
a mutex.
--jkl
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users