Thus you learned from the experience that the efficiency of your application programming lanuguage has far more effect than anything you might do fiddlefaddling with the query's.
--- The fact that there's a Highway to Hell but only a Stairway to Heaven says a lot about anticipated traffic volume. >-----Original Message----- >From: sqlite-users [mailto:sqlite-users- >boun...@mailinglists.sqlite.org] On Behalf Of x >Sent: Friday, 19 January, 2018 11:10 >To: SQLite mailing list >Subject: Re: [sqlite] [EXTERNAL] get stmt row count > >>(and possibly numeric index) > > > >You’re on my wavelength Ryan as, I think, is David. > > > >Incidentally, the stmt1 query was suited to the harvesting of base >table RowIDs that I’ve been banging on about in other threads. For >the query in question I replaced the column list with BaseTbl.RowID >and ran the resultant query, It took just over 2 secs to store all >the sorted base table RowIDs in a vector, the size of which yielded >the row count. > > > >Compare that with the 12+ secs it took using the standard methods. >Certainly sqlite was storing more of the query’s column data but It >took only slightly longer using the RowID method to store all the >results in a 2-dim vector of strings than it did to step through >stmt1 and do the same. > > > > > >________________________________ >From: sqlite-users <sqlite-users-boun...@mailinglists.sqlite.org> on >behalf of David Raymond <david.raym...@tomtom.com> >Sent: Friday, January 19, 2018 3:22:56 PM >To: SQLite mailing list >Subject: Re: [sqlite] [EXTERNAL] get stmt row count > >Maybe use a temp table as another possible solution? > >create temp table queryResults (id int); >insert into queryResults select rowid from Tbl where Col > ?1 order >by Col; >select count(*) from queryResults; >select id from queryResults order by rowid; >drop table queryResults; > > > >The whole issue of CTE's being calculated more than once is an issue, >otherwise I would say... > >with queryResults as (select rowid from Tbl where Col > ?1 order by >Col) >select count(*) from queryResults union all select rowid from >queryResults; > >Then the first record would be the count, followed by all the rowids. >But it looks like it's running the CTE twice, which defeats the >advantage. > > >-----Original Message----- >From: sqlite-users [mailto:sqlite-users- >boun...@mailinglists.sqlite.org] On Behalf Of x >Sent: Friday, January 19, 2018 8:50 AM >To: SQLite mailing list >Subject: Re: [sqlite] [EXTERNAL] get stmt row count > >Keith & Simon, are you not both missing the point? I want the rows >and the count but without having to run two queries. > >I tried the following (let stmt1 represent the original query and >stmt2 the count(*) version of that query). > >stmt1 took 6+ secs for the first step. >stmt2 took 6+ secs to get the count. > >Counting using > >int Count=1; >while (sqlite3_step(stmt1)) Count++; > >after the first step took under 2 secs BUT in order to then get the >rows I’d have to reset stmt1 which would result in the pre-first step >code being run again at the first step call (another 6+ secs down the >drain). > >I’m thinking (but I’m by no means sure) that sqlite’s pre-first step >code should be able to calculate the row count as it went along at >virtually no cost. I realise it would only be a solution for queries >sorted by non-indexed columns (i.e. where sqlite’s pre-first step >code had to consider all result set rows). > > > > > >_______________________________________________ >sqlite-users mailing list >sqlite-users@mailinglists.sqlite.org >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users >_______________________________________________ >sqlite-users mailing list >sqlite-users@mailinglists.sqlite.org >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users >_______________________________________________ >sqlite-users mailing list >sqlite-users@mailinglists.sqlite.org >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users