sqlite - 内存中的临时数据

时间:2009-09-29 06:27:02

标签: sqlite temporary-files

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

我想,只要我有这个pragma设置,它甚至不应该尝试打开一个临时文件......

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

任何想法?

3 个答案:

答案 0 :(得分:4)

来自documentation

  

回滚期刊,硕士期刊,   和语句日志文件总是   写入磁盘。但其他种类   临时文件可能存储在   仅内存,永远不会写入磁盘。   是否临时文件其他   比回滚,主人和   语句日志写入磁盘   或仅存储在内存中取决于   SQLITE_TEMP_STORE编译时。{{1}}   参数,temp_store pragma和   关于临时文件的大小。

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

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

答案 1 :(得分:2)

答案 2 :(得分:0)