SQLite でのクエリで、重大なパフォーマンスの問題が発生しています。現在、表 activity_tbl には約 20000 のエントリがあり、表activity_data_tblには約 40のエントリがあります。以下のクエリで使用される両方の列のインデックスがありますが、パフォーマンスにはまったく影響がないようです。
SELECT a._id, a.start_time + b.length AS time
FROM activity_tbl a INNER JOIN activity_data_tbl b
ON a.activity_data_id = b._data_id
WHERE time > ?
ORDER BY 2
LIMIT 1
ご覧のとおり、1 つの列と、2 つの列を加算して作成された値を選択します。a.start_timeまたはb.lengthを選択するだけでクエリが非常に高速になるため、これがパフォーマンスの低下の原因だと思います。
これを最適化する方法について何か提案はありますか?