内存架构
【实例——内存】服务器操作系统为实例分配的内存区域,通过V$MEMORY_DYNAMIC_COMPONENTS查询,分为两部分:
1、系统全局区(SGA:System Global Area),是数据库实例启动时创建的一个共享内存区域,其大小和相关配置通过参数文件中的相关参数来控制。为实例范围内共享的,可以通过V$SGA、V$SGA_DYNAMIC_COMPONENTS、V$SGAINFO进行查看,其内部分为
(1)共享池(shared pool),存储数据库实例重要的结构和信息,共享池又分为库缓冲和字典缓冲等。通过V$SGA_DYMATIC_COMPONENTS和V$SGAINFO查询;
(2)数据缓冲,作为用户数据缓冲区,在系统共享内存中暂存数据库的数据块,以此改善数据库的读写性能;
(3)重做日志缓冲,即REDO缓冲;
2、程序全局区(PGA:Program or Process Global Area),是服务进程存储数据及控制信息进而完成相关任务的内存区域。为各会话私有的内存区域。通过V$PGASTAT进行查询。分为:
(1)会话区(UGA,User Global Area),是为会话分配的内存区域,用于存储各种会话变量。针对Oracle实例不同服务器模式设置,会话区分为“专用服务器模式”和“共享服务器模式”
(2)SQL工作区,是为服务进程进行各种内存操作分配的PGA私有内存。
【实例-后台进程】实例创建和维护的一组后台进程,用以完成数据库内部的各种统一管理和监控任务。通过V$PROCESS查询。
【实例-服务进程】实例为数据库会话创建或分配的,用以完成会话任务的服务器端服务进程。
【数据库文件】
1、参数文件,SPFILE(动态)和PFILE,目录在Oracle_home/dbs/initsid.ora 或者spfilesid.ora
2、控制文件,V$CONTROLFILE
存储架构
【块】(block),是oracle数据库读写的最小单位,块大小(Block size)是操作系统(OS)层面块大小的整数倍。
——块自由空间(free space)
——行迁移
——行链接:数据库中存在过多的行迁移和行链接,都会因为消耗过多的I/O资源影响性能,因此我们可以通过调整块大小和行大小来尽量避免和减少行链接。
【区间】(Extent),也称“扩展”,由多个地址连续的块组成,也是oracle存储空间分配的最小单位。