【问题标题】:sqlite - temporary data in memorysqlite - 内存中的临时数据
【发布时间】:2010-12-02 05:32:17
【问题描述】:

我的情况:我有一个基于文件的 sqlite 数据库,并希望在内存中完成所有临时工作(用于大型查询的临时数据库等)。我尝试使用 PRAGMA temp_store = 2 命令,但我不能 100% 确定它是否真的符合我的要求。奇怪的是,在调试时,我仍然使用 winGetTempname 函数,它会在磁盘上打开一个临时文件!

我想,一旦我设置了这个编译指示,它甚至不应该尝试打开一个临时文件......

我也尝试使用 TEMP_STORE 预处理器标志,但同样,对 winGetTempname 的调用仍然完成...

有什么想法吗?

【问题讨论】:

    标签: sqlite temporary-files


    【解决方案1】:

    来自documentation

    回滚日志,主日志, 和报表日志文件总是 写入磁盘。但其他种类 的临时文件可能存储在 仅内存,从不写入磁盘。 临时文件是否其他 比回滚、主控和 报表日志写入磁盘 或仅存储在内存中取决于 SQLITE_TEMP_STORE 编译时 参数、temp_store pragma 和 关于临时文件的大小。

    从上面可以清楚地看出,如果你设置了正确的标志,所有的临时操作都将在内存中执行,除了日志机制。

    如果您想确保使用实用程序来监控您的应用程序的文件系统活动,例如 Windows 上的Process Monitor

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      【讨论】:

        猜你喜欢
        • 2010-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-04
        • 2018-04-07
        • 2022-12-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多