暂无图片
分享
yBmZlQzJ
2024-01-15
在10.2.0.1以上版本的数据库中,预计某个SQL执行期间,若可以在PGA中提供至少1GB的排序区,那么其执行性能将显著提升,请问,以下哪些做法是可能实现这一目标的?

多选题

alter system set "_SMM_MAX_SIZE" = 1048576

alter system set "_PGA_MAX_SIZE" = 1G;

alter system set PGA_AGGREGATE TARGET = 5G;

在目标会话,执行:alter session set WORKAREA_SIZE_POLICY=MANUAL; alter session set sort_area_size=1073741824; (1024*1024*1024=1073741824) ,然后在该会话中执行目标SQL。

收藏
分享
3条回答
默认
最新
Lei_狮

选择 C、D。


对于复杂的查询,pga 中有专门的缓冲区,sql 工作区排序,hash –join,bitmap

SQL> show parameter pga;

NAME                                                 TYPE                                VALUE

------------------------------------ ---------------------------------

pga_aggregate_limit                 big integer                        9000M

pga_aggregate_target                big integer                        500M

 

PGA_AGGREGATE_LIMIT 限制 PGA 内存总大小

pga_aggregate_target 是一个上限目标

 

ALTER SYSTEM SET PGA_AGGREGATE_LIMIT=0; --disables the hard limit

workarea_size_policy:manual 或者 auto,默认 auto

将 workarea_size_policy 设置为 auto,Pga_aggregate_target 有一个非0的值,oracle 就会使用自动 pga 管理

 

select * from v$pga_target_advice;

pga 的参考值,v$pga_target_advice 视图显示的预估值,

需要 statistics_level 设 置为 all 或者 typical 才有效。

 

SELECT pga_target_for_estimate / 1024 / 1024 "PGA(MB)",

pga_target_factor,

estd_pga_cache_hit_percentage,

estd_overalloc_count

FROM v$pga_target_advice;

PGA(MB) PGA_TARGET_FACTOR ESTD_PGA_CACHE_HIT_PERCENTAGE

ESTD_OVERALLOC_COUNT

---------- ----------------- -----------------------------

62.5         0.125         93

125         0.25         100

250                0.5         100

375                0.75         100

500                1                 100

600                1.2         100

700                1.4         100

800                1.6         100

900                1.8         100

1000        2                 100

1500        3                 100

2000        4                 100

3000        6                 100

4000        8                 100

当count显示为100时说明pga的值已经够用了。

暂无图片 评论
暂无图片 有用 4
打赏 0
暂无图片
广州_老虎刘

AD

暂无图片 评论
暂无图片 有用 1
打赏 0
广州_老虎刘
答主
2024-01-15
when pga_aggregate_target >1000MB, _smm_max_size = 10%* pga_aggregate_target 选项C 算出来只有500M
Lei_狮
2024-01-16
确实如果按5G算的确只有500M。 _smm_max_size: pga_aggregate_target <= 500 MB, then _smm_max_size = 20% * pga_aggregate_target pga_aggregate_target [500MB , 1000 MB], then _smm_max_size = 100 MB pga_aggregate_target >= 1000 MB, then _smm_max_size = 10% * pga_aggregate_target 但是我在查资料的同时发现一个问题,_pga_max_size和_smm_max_size是相对应的限制参数,如果只修改_smm_max_size为1G而_pga_max_size默认的话为5%*pga_aggregate_target,这个属于硬性限制如果未修改_smm_max_size能否生效从而使期望尺寸达到1G。 相比之下PGA_AGGREGATE_TARGET该参数虽然设定为5G,oracle会尽量维护整个PGA内存不超过这个值,但如果实在没有办法,也还是会突破该参数限制的,相比于之前应该会得到提升,所以我认为是C、D选项。 由于手上暂无环境可以验证关于单独设置_smm_max_size 是否能不受_pga_max_size的限制还请老哥解惑。
广州_老虎刘
答主
2024-01-16
pga分配超过PGA_AGGREGATE_TARGET也是正常的, 如果有多个消耗较多pga的session同时运行, 那么就很容易超出,但是单个session最多使用的pga仍是受限的; 所以oracle在12c又增加了pga_aggregate_limit参数来做总限制. _smm_max_size 可能要配合 _pga_max_size 才能生效, 一般不建议改这种隐含参数, 我也没有做深入测试. 如有需要,建议使用WORKAREA_SIZE_POLICY=MANUAL
展开全部评论(1条)
Thomas

感觉只有D是对的。本来这个修改就是针对具体某会话的,而A,B,C都是改整个实例的设置,没必要。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
大神, 我要把oracle 数据库迁移到一台新的oracle机器上面。 在保证数据完整性的同时, 如何还能保证效率 ?
回答 2
整体迁移根据停机窗口,数据类型,数据库版本,数据量;是否包含复杂的数据类型等等综合考虑,一般数据泵oggadgxtts,甚至如果ASM磁盘重新映射启动都可以的
Oracle 慢SQL可能会使ibtmp1文件爆增吗?
回答 1
已采纳
Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,tem
oswacher
回答 1
暂无文字回复
Oracle RAC 11G 从单存储external 切换到双存储normal,有什么速度较快的方法吗?
回答 3
学习了
有兄弟搞过11.2.0.4dbua升级到19C的么?求经验分享
回答 1
已采纳
论坛上有很多这样的资料,提问前可以先搜索一下试试Oracle11G原地升级19CPDB
PLSQL或Navicat等工具连接oracle,查询表数据,使一些指定的词汇直接显示成*怎么实现?
回答 2
1.如果你是想使某些列都变成,可以使用wallet功能。2.如果是可以新建一个用户,那么你可以在本用户创建一个视图,视图里用replace处理号,然后在新用户下,以原表名为名称,建立一个指向视图的同义
Tablespace
回答 3
dfh看是哪个目录下有空间如/u02目录,然后给表空间加数据文件altertablespacexxxadddatafile&39;/u02/data/xxx.dbf&39;size30g;
rac11g,领导上升级到最新版本,是哪个?怎么弄好些
回答 1
已采纳
那不是得上oracle19crac?
Dear 各位大神,紧急求助,Oracle数据库用Toad 管理工具扩表空间扩1个G时异常终止,toad 查到的表空间为16G,实际Linux 查到的是17G,已经reset过了,但是2边还是不一致。这个不一致的问题怎么处理,请支支招。感谢。
回答 13
可以在源环境新建TS18G数据文件,测试一下
11grac数据库配置adg备库,adg也能是rac或者是单机,还有备库实例能和主库实例名一致吗?
回答 3
把需求说清楚,基本上都可以实现多个实例的ADG
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~