SQLiteのクエリで重大なパフォーマンス問題が発生しています。現在、テーブルには約20000のエントリがありますactivity_tblと約40テーブルactivity_data_tblです。下のクエリで使用される両方の列のインデックスがありますが、パフォーマンスには何の影響も与えないようです。SQLite - 選択式が非常に遅い
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
ご覧のとおり、2つの列を追加して1つの列と値を選択します。私はa.start_timeまたはb.lengthを選択するだけで、クエリが非常に高速であるため、これが低パフォーマンスの原因となっていると思います。
あなたは私がこれをどのように最適化できるかについての提案はありますか?
あなたは、インデックス( '.s')とスキーマを投稿することができますか? – netcoder
2つのコメント:タイトルを変更して質問に回答しないでください。代わりに以下のいずれかの答えの横にチェックマークを入れてください(あなた自身の答えであれば、あなた自身の質問に返信し、正しい答えにすることができます)。また、小さな開始時間のフィルタリングでは、データの「形状」によっては、元のクエリと同じ結果が得られない場合があります。 –