私有
SQL
区包含了绑定变量值和运行时期内存结构信息等数据。每一个运行
SQL
语句的会话都有一个块私有
SQL
区。所有提交了相同
SQL
语句的用户都有各自的私有
SQL
区, 并且他们共享一个共享
SQL
区。因此,一
一个
Oracle
预编译程序或
OCI
程序的应用开发人员能够很明确的打开一个游标,或者控制一块特定的私有
基于排序的操作(
ORDER BY
、
GROUP BY
、
ROLLUP
、窗口函数);
UGA
是一个会话含义的内存区,它保存着和会话相关的信息,比如会话登录信息,绑定变量的值,
Pl/SQL
包的
UGA
必须保证会话能够访问到
UGA
当中的数据,因此
UGA
的位置会随数据库连接方式的不同而不同。
当连接使用的是专用模式(
dedicated)
时,因为会话是专有的,所以
UGA
属于
PGA
的一部分。
当连接模式为
MTS
时,由于会话可能会使用任意一个共享进程,因此这些进程必须能够同时访问
UGA
中的
数 据,此时
Oracle
会把
UGA
放在
SGA
区中(共享内存区域)。
select t.sga_size,estd_physical_reads from v$sga_target_advice t order by 1;
当
estd_physical_reads
不再减小时取
sga-size
对应值
select s.pga_target_for_estimate,s.estd_pga_cache_hit_percentage from v$pga_target_advice s order by 1
当
estd_pga_cache_hit_percentage
达到
100%
时取
pga_target_for_estimate
对应值
评论