【发布时间】:2013-08-06 07:15:56
【问题描述】:
我有一个嵌入式系统,它使用 C/C++ api 和 SQLite v3 的编译版本。我在pragma integrity_check(10); 上收到SQLITE_NOMEM 错误。我问底层系统程序员应用程序堆大小是多少,他告诉我值是 500k。还有一个 SQL 向量大小为 4096。
我有什么办法可以摆脱这种情况?除了将数据库拆分为多个?
【问题讨论】:
-
pragma integrity_check是一个管理功能,不应在正常操作期间运行。 (当检查失败时你该怎么办?) -
我正在恢复损坏数据库上的备份文件。现在它发生了,即使它是一个 NOMEM 错误。我想解决这个问题。
-
在测试数据库上尝试编译指示。使用 sqlite3 命令。从那里开始寻找导致失败的具体原因。 (SQLite 环境可能以某种方式搞砸了。)
-
它会自动对 4 个数据库进行完整性检查,并且只在较大的数据库上给出 NOMEM 错误。我要求增加应用程序堆的大小。明天就会清楚是不是因为它。
标签: sqlite out-of-memory database-integrity