对于INNER JOIN SELECT语句,SQLite查询执行花费了可怕的时间

时间:2014-06-23 06:06:43

标签: ios iphone objective-c performance sqlite

SQlite查询花了太多时间执行表连接查询,如下所示:

SELECT COUNT(Level.ControlStatus) FROM Inspections,Level,RoomData WHERE Level.LevelType = 14 AND ((Level.ID = RoomData.ID or Level.ID = RoomData.ExtraLevelID) AND Level.IsExtraLevel=RoomData.UseExtraLevel AND Level.InspectionUniqueID=RoomData.InspectionUniqueID) AND (Level.SampleRound = Inspections.CurrentSampleRound AND Level.InspectionUniqueID=Inspections.InspectionUniqueID) AND Level.InspectionUniqueID in ('Insp147#355463543462364HUGE')

我如何提高性能,因为我在这样的应用程序中有很多查询,这使得性能最差。

由于

1 个答案:

答案 0 :(得分:0)

使用EXPLAIN查看使用了哪些索引,哪些索引可能丢失。如果您确定已正确创建所有索引,则需要更新SQLite。在最近的版本中,查询规划器已经被替换和改进了很多。编译Sqlite for iOS很简单(需要两个文件,然后从构建设置中删除系统的sqlite .dylib)。