ORACLE,DML语句中,插于更新后,还没COMMIT,则硬盘中的文件里面的数据块的内容请问被改掉了吗?
发布网友
发布时间:2022-04-09 11:46
我来回答
共3个回答
热心网友
时间:2022-04-09 13:15
这么说吧~就算你COMMIT了,看到了提示说已经提交,硬盘的文件当时都不一定被改掉的。ORACLE的机制是在COMMIT后会先在缓存区中留着,当提示你说已经提交完成后其实是已经写入了日志文件,这样即使你在COMMIT后立马出现灾难,你的日志文件也已经记录了你的操作,当你再次启动数据库的时候,它会根据日志文件进行恢复。
热心网友
时间:2022-04-09 14:33
如果没有commit,硬盘里的数据是没有修改。
如果commit了,也由可能没有修改,但是日志文件会记录下来。
因为oracle有个批量写入的机制。在写入操作比较多的时候,commit并不能把修改的内容立即写入到硬盘中去,而是放入缓存区中,日志文件中记录。等到待写入内容累积到一定数量时,再批量写入到硬盘中去。 \
楼上正解。但是日志文件中会记录下每次操作
热心网友
时间:2022-04-09 16:08
如果没有commit,硬盘里的数据是没有修改。
如果commit了,也由可能没有修改,但是日志文件会记录下来。
因为oracle有个批量写入的机制。在写入操作比较多的时候,commit并不能把修改的内容立即写入到硬盘中去,而是放入缓存区中,日志文件中记录。等到待写入内容累积到一定数量时,再批量写入到硬盘中去。