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')
我如何提高性能,因为我在这样的应用程序中有很多查询,这使得性能最差。
由于
答案 0 :(得分:0)
使用EXPLAIN查看使用了哪些索引,哪些索引可能丢失。如果您确定已正确创建所有索引,则需要更新SQLite。在最近的版本中,查询规划器已经被替换和改进了很多。编译Sqlite for iOS很简单(需要两个文件,然后从构建设置中删除系统的sqlite .dylib)。