0
我正在使用FMDatabaseQueue來使用GCD使用fmdb的功能。 但GCD沒有幫助。FMDB在運行時凍結應用程序執行更新查詢
當我嘗試執行任何執行更新查詢幾次在一瞬間我凍結了應用程序。
爲了提高我做 性能 - 複雜的查詢,減少查詢 的數量 - 使用begin和commit transaction - 使用setShouldCacheStatements 但沒有什麼幫助
這裏是代碼 FUNC complexQuery的一些示例(的SQLQuery :字符串) - >布爾{
var result = false
self.databaseQueue.inDatabase() { database in
database.setShouldCacheStatements(true)
database.beginTransaction()
result = database.executeStatements(sqlQuery)
database.commit()
}
也許你應該關閉並打開你的FMDatabase。請檢查此http://stackoverflow.com/a/18216818/1866077 – arthankamal
請澄清「我凍結了應用程序」。應用程序是否完全死鎖?或者只是在另一個線程上進行多次更新時暫時停頓。究竟我們在這裏談論多久?另外,你在'sqlQuery'中做了多少次更新?結果是否表示成功完成? – Rob
我有「只是暫時停頓,而在另一個線程上進行多次更新」會凍結。 3次查詢中約有4000次更新。結果是成功的。 謝謝 – Svitlana