我的情况:我有一个基于文件的sqlite数据库,并希望在内存中完成所有临时工作(大型查询的临时数据库等)。我尝试使用 PRAGMA temp_store = 2 命令,但我不能100%确定它是否真的能满足我的需求。奇怪的是,在调试时我仍然会到达功能 winGetTempname ,这会在磁盘上打开一个临时文件!
我想,只要我有这个pragma设置,它甚至不应该尝试打开一个临时文件......
我也尝试使用TEMP_STORE预处理程序标志,但同样,对 winGetTempname 的调用仍然完成...
任何想法?
答案 0 :(得分:4)
回滚期刊,硕士期刊, 和语句日志文件总是 写入磁盘。但其他种类 临时文件可能存储在 仅内存,永远不会写入磁盘。 是否临时文件其他 比回滚,主人和 语句日志写入磁盘 或仅存储在内存中取决于
SQLITE_TEMP_STORE
编译时。{{1}} 参数,temp_store pragma和 关于临时文件的大小。
从上面可以清楚地看出,如果设置了正确的标志,除了日志机制之外,所有临时动作都将在内存中执行。
如果您想确保使用实用程序来监视应用程序的文件系统活动,例如Windows上的Process Monitor。
答案 1 :(得分:2)
答案 2 :(得分:0)