了解与 Oracle 数据库相关的基本内存结构。
与Oracle数据库相关的基本内存结构包括:
-
系统全局区域(SGA)
SGA 是一组共享内存结构,称为 SGA 组件,包含一个 Oracle 数据库实例的数据和控制信息。SGA 由所有服务器和后台进程共享。存储在 SGA 中的数据包括缓存的数据块和共享的 SQL 区域。 -
程序全球区域(PGA)
PGA 是一个包含服务器进程数据和控制信息的内存区域。当服务器进程启动时,Oracle 数据库创建的非共享内存。PGA 只能由服务器进程访问。每个服务器进程都有一个 PGA。后台进程也会分配自己的 PGA。为连接到 Oracle 数据库实例的所有后台进程和服务器进程分配的总 PGA 内存称为总实例 PGA 内存,所有独立 PGA 的集合称为总实例 PGA,或简称为实例 PGA。

如果您的数据库运行在 Solaris 或 Oracle Linux 上,您可以选择添加另一个内存组件:数据库 Smart Flash Cache。数据库智能闪存缓存是 SGA 驻留的缓冲缓存的扩展,为数据库块提供了二级缓存。它可以提高读密集型联机事务处理(OLTP)工作负载的响应时间和整体吞吐量,以及数据仓库环境中的临时查询和批量数据修改。数据库 Smart Flash Cache 驻留在一个或多个闪存设备上,闪存设备是使用闪存的固态存储设备。数据库智能闪存通常比额外的主内存更经济,比磁盘驱动器快一个数量级。
从 Oracle Database 12c Release 1(12.1.0.2)开始,大表缓存允许串行查询和并行查询使用缓冲区缓存。大表缓存有助于在数据仓库环境中高效地缓存大表,即使这些表不能完全放入缓存中。表扫描可以在以下情况下使用大表缓存:
-
并行查询
在单实例和 Oracle RAC 数据库中,当DB_BIG_TABLE_CACHE_PERCENT_TARGET初始化参数设置为非零值,并且PARALLEL_DEGREE_POLICY设置为AUTO或ADAPTIVE时,并行查询可以使用大表缓存。 -
串行查询
仅在单实例配置中,当DB_BIG_TABLE_CACHE_PERCENT_TARGET初始化参数设置为非零值时,串行查询可以使用大表缓存。




