如何检查SQLite数据库是否被锁定

时间:2018-01-09 12:03:56

标签: objective-c sqlite ios11

我有一个应用程序,可以对本地SQLite3数据库进行大量调用,有时这些调用非常接近(来自应用程序的不同区域)。如何在调用数据库之前检查数据库当前是否已锁定?

理想情况下,我会重写应用程序(它已远远超出其原始范围)但在此次迭代中没有时间。

1 个答案:

答案 0 :(得分:2)

我不知道在objective-c中该怎么做,但是我在很长一段时间内一直在使用sqlite3c我也面临同样的问题。我用下面的方法。

  1. 使用busy_timeout并保持可配置。
  2. 使用busy_handler继续重试n次。
  3. 这两个改进对我很有用,但我观察到一些性能问题,我可以通过上面的配置参数来处理。您需要在故障安全和性能之间进行一些交易。