2011-03-25 90 views
0

我目前在我的應用程序中使用此SQLite查詢。兩個表在此查詢中使用.....iPhone的SQLite查詢優化

UPDATE table1 set visited = (SELECT COUNT(DISTINCT table1.itemId) from 'table2' WHERE table2.itemId = table1.itemId AND table2.sessionId ='eyoge2avao'); 

它正在正確的....我的問題是,它正在約10秒,以執行這個查詢和檢索結果.....唐不知道該怎麼辦......幾乎所有其他的過程都是正確的..所以看起來問題是這個查詢形成...

Plz有人幫助如何優化此查詢....

Regards, Brian

+0

您是否試圖在分離查詢SELECT語句?只是看看SELECT是否花了這麼長時間或更新。 – 2011-03-25 13:14:54

回答

0

確保您有索引以下的(的組合)字段:

  • table1.itemId (這將加速DISTINCT子句,由於的itemId將已經處於正確的順序)。

  • table2.itemId,table2.sessionId 這會加快SELECT語句的WHERE子句。

這些表格中有多少行?

+0

嘿,謝謝很多朋友... 刪除DISTINCT沒有幫助。它仍然是一樣的。 但是,當我把查詢分爲兩個,它幫助了:)... – BrianChristo 2011-04-25 03:34:30

0

你也可以在你的SELECT命令上試着用EXPLAIN來看看它是否給你提供了有用的建議。