用户的所以操作都在内存中进行,最后由数据库后台进程将操作结果写入物理磁盘中。
用户操作数据库的实质是:与实例建立连接,然后通过实例来操作数据库。
一、高速缓冲区
高速缓冲区存放的是最近从数据文件中读取出来的数据,供用户使用。
用户要操作数据时,实例将数据读取到高速缓冲区中,用户在高速缓冲区中操作数据,处理的结果放在高速缓冲区中,最后由数据库的进程写入磁盘。
二、共享池
缓存:暂时存储
共享池缓存最近执行过的SQL语句、pl/sql 程序和数据字典,是对SQL语句、pl/sql 程序进行语法分析、编译、执行的区域。共享池由库缓存和数据字典缓存组成。
共享池就像是一个笔记本,当我们遇到了什么问题,就会去分析问题,解决问题,然后把这些分析的步骤和方法写在笔记本中。如果下次还遇到,我们就直接套用笔记本里面的方法,就不用重新分析,也就提升了解题效率。
1.库缓存区
库缓存区存放了最近被执行过的SQL语句、pl/sql 程序编译后的代码以及执行计划。Oracle在执行用户提供的SQL语句、pl/sql 程序之前,要对他们进行语法分析、对象确认、权限检查等等,做这些工作要消耗资源。
所以Oracle 就将这些工作步骤,放到了库缓冲区中,如果下一次遇到了相同的请求,那么就在库缓存区中寻找之前有没有解决过,如果有直接套用,提升了效率。
2.数据字典缓存区
存放最常使用的数据字典,如数据库对象信息、账号信息、数据库结构信息等。当用户访问数据库,可以从数据字典缓冲区中获得对象,也大大提升了效率