我们试图在代码中找到内存泄漏。随着软件的运行,我可以看到内存的使用量慢慢地越来越大。每个操作都会在数据库中添加记录。
然后,我想知道,在我们提交更改之前,insert命令中的数据到底去了哪里?数据是否已添加到实际数据库文件中,并标记为“请求时回滚”?或者只存储在内存中,并在提交请求完成时转储?
如果有帮助的话,我们现在正在使用access。

最佳答案

作为“开始事务”的一部分,“数据”本身不会去任何地方或以任何方式更改,而是记录向其发出的命令列表。如果您随后使用“回滚”取消事务,则会删除指令而不做任何更改,否则,如果发出“提交”,则会按正确的顺序执行保存的指令。
由于指令存储在本地表中(如albert所述),这就是为什么当本地文件全部打开到内存中时,内存会增加(因此我们将前端和后端数据库分开访问,以避免在ram上转储一个大文件)
还值得一提的是,任何发出的sql语句在保存之前都会检查其语法,以确保在运行多个sql语句时不会中途失败,并使数据处于您不希望的状态。
为“指示”道歉我知道这是外行的说法,但我希望它有意义。

10-04 21:42
查看更多