我有一個非常簡單的查詢:SQLite的查詢延遲
SELECT count(id), min(id), max(id), sum(size), sum(frames), sum(catalog_size + file_size)
FROM table1
table1
擁有約3000至4000分的記錄。
我的問題是,這個查詢需要大約20秒才能運行。由於它被稱爲不止一次,延遲對客戶來說非常明顯。
這個查詢花費20秒是否正常?有什麼方法可以改善運行時間嗎? 如果我從SQLite Manager運行相同的查詢,則需要幾毫秒才能執行。只有當我們的軟件調用查詢時纔會出現延遲。 EXPLAIN
和EXPLAIN QUERY PLAN
沒有什麼幫助。我們使用SQLite 3.7.3版本和Windows XPe。
任何想法如何解決這個問題或提高查詢的性能?
您是否有'id'索引? – 2012-10-19 13:52:59
id是主鍵。 – ViP
索引在這裏並不重要。它仍然需要閱讀表格中的每條記錄。如果唯一的聚合是'count(id),min(id),max(id)',那麼規劃師可以使用該索引。之後的sum()意味着整個表必須被執行。 –