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