2015-02-05 25 views
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() 
} 
+0

也許你應該關閉並打開你的FMDatabase。請檢查此http://stackoverflow.com/a/18216818/1866077 – arthankamal

+0

請澄清「我凍結了應用程序」。應用程序是否完全死鎖?或者只是在另一個線程上進行多次更新時暫時停頓。究竟我們在這裏談論多久?另外,你在'sqlQuery'中做了多少次更新?結果是否表示成功完成? – Rob

+0

我有「只是暫時停頓,而在另一個線程上進行多次更新」會凍結。 3次查詢中約有4000次更新。結果是成功的。 謝謝 – Svitlana

回答

0

嘗試呼叫的FMDB實例closeOpenResultSets只是執行查詢

前0