Hello, Radovan,

Regarding:  "ANALYZE doesn't help because data is loaded from RDBMS
for processing every time."

You can avoid the workaround, have "almost instant" analyze, and insure
against some types of inefficient queries in future by:
   1. Running analyze on a representative working database
   2. Save the data from the "sqlite_stat1" file (and also perhaps
sqlite_stat3 and sqlite_stat4 if you configure for them)
   3. When you create a new database, and BEFORE you do the long loading of
data, invoke analyze (runs very quickly)
   4. Insert the data saved from step #2 into the stat tables that analyze
just created.
   5. Load the big data, then create your indexes.
   6. Life is good.   You need to repeat the first two steps only when your
schema or data character changes significantly.

https://www.sqlite.org/optoverview.html#manctrl

I'll leave it to those more knowledgable to consider your "why" question.

P.S. don't you consider sqlite a RDBMS?     ;-)

Donald
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to