Hi -- Once again thank you for all your help. It was instrumental in helping identify the problem. Once I added an empty while loop that completed the processing of some key query results, the SELECT statements showed up in my profiling output and we immediately identified the one that was missing a key index, thereby triggering a table scan. Query time dropped from about 18ms to about 1 ms and overall processing time from about 20 minutes to under 2. Not bad for a day's work.
We are seeing something strange, however, that I was wondering if you had any thoughts on. Our program generates a schema programmatically at the beginning of a run, if it isn't already there, and then inserts a total of about 300,000 records in various tables. On subsequent runs it does mostly reading from these tables. We added code to generate the extra index on the necessary tables and indeed its seems to have brought the time for this initial data generation down from around 30 minutes to about 8 minutes (not 100% sure that the time hadn't already been reduced, but I believe it was after adding this index). However, on subsequent runs of the program the queries that were taking 18ms were still taking 18ms. It was as if there was no index added at all. I double checked this in the firefox sqlite tool and the indexes were definitely there and appeared to be constructed correctly, but issuing the same queries interactively in the firefox tool also took about 18ms to execute. Then on a lark I decided to drop the index and recreate it in the firefox tool. Once I did that, the query execution time dropped to 1 ms and the overall program execution time dropped from about 20 minutes to under 2. Any thoughts on what might be happening here? Thanks again for all your help. Regards, Mike -----Original Message----- From: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Richard Hipp Sent: Thursday, October 24, 2013 10:58 AM To: General Discussion of SQLite Database Subject: Re: [sqlite] Trying to figure out how to circumvent sqlite3_win32_mbcs_to_utf8 On Thu, Oct 24, 2013 at 10:54 AM, Mike Clagett <mike.clag...@mathworks.com>wrote: > Hi -- > > This is indeed exactly what is happening. On many occasions the > mechanism is only interested in the first row of a result set and issues > sqlite3_reset() before the result set is completely processed. Given that > this is what is occurring, is there any way around this -- > essentially, I guess, any way to still have that step statement executed or > at least the > profile callback invoked? Because at the end of the day, it is the > numerous select statements that we probably need to be profiling. > We have your request to enhance the sqlite3_profile() mechanism to invoke the profile callback on an early sqlite3_reset(). Unfortunately, there are several higher-priority enhancement requests in queue in front of this, so it might be a while... -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users