相克军_Oracle体系_随堂笔记007-PGA
2014-07-14 20:39 AlfredZhao 阅读(1622) 评论(0) 编辑 收藏 举报实际工作中,Oracle中有两个很重要:Server Process 和 PGA。
PGA内存作用和构成
1、PGA作用
2、PGA构成
1)private SQL area
2)Session Memory
(hold a session’s variables (logon information) and other information related to the session.)
3)SQL Work Areas
3、PGA管理方式
4、Dedicated Server、Shared Server
目前大都是用Dedicated Server.
如果是大型电商网站,访问很多,单个负载很小的话,就用Shared Server。
5、重要参数
PGA_AGGREGATE_TARGET
1 2 3 4 5 6 | 在OLTP系统中,典型PGA内存设置应该是总内存的较小部分(例如20%),剩下80%分配给SGA。 OLTP:PGA_AGGREGATE_TARGET = (total_mem * 80%) * 20% 在DSS系统中,由于会运行一些很大的查询,典型的PGA内存最多分配70%的内存。 DSS:PGA_AGGREGATE_TARGET = (total_mem * 80%) * 50% SQL> alter system set workarea_size_policy=auto scope=both; SQL> alter system set pga_aggregate_target=512m scope=both; |
WORKAREA_SIZE_POLICY
1 2 3 4 5 6 7 8 | sort_area_size sort_area_retained_size hash_area_size hash_join_enable bitmap_merge_area_size create_bitmap_area_size open_cursors _pga_max_size |
1 2 3 | select ksppinm "Name" , ksppstvl/1024/1024 || 'M' "Value" , ksppdesc "Desc" from x$ksppi x, x$ksppcv y where x.indx = y.indx and ksppinm = '_pga_max_size' ; |
6、重要视图
V$PGASTAT
1 | SELECT * FROM V$PGASTAT; |
V$PGA_TARGET_ADVICE
1 2 3 4 5 | Select pga_target_for_estimate/1024/1024 || 'M' "Estimate PGA Target" ,estd_pga_cache_hit_percentage "Cache Hit(%)" ,estd_extra_bytes_rw/1024/1024 || 'M' "Extra Read/Write" ,estd_overalloc_count "Over alloc count" From v$pga_target_advice |
1 2 3 | select (p.PGA_TARGET_FOR_ESTIMATE)/1024/1024,p.ESTD_PGA_CACHE_HIT_PERCENTAGE from v$pga_target_advice p where p.ESTD_PGA_CACHE_HIT_PERCENTAGE>95; |
1 2 3 4 | SELECT round(PGA_TARGET_FOR_ESTIMATE/1024/1024) target_mb, ESTD_PGA_CACHE_HIT_PERCENTAGE cache_hit_perc, ESTD_OVERALLOC_COUNT FROM v$pga_target_advice; |
V$SYSSTAT 、V$SESSTAT
1 2 | select * from V$SYSSTAT where name like '%sort%' ; |
1 | select name ,value from v$statname a,v$mystat b where a.statistic#=b.statistic# and a. name like '%pga%' ; |
V$SQL_WORKAREA
V$SQL_WORKAREA_ACTIVE
V$PROCESS
1 2 3 4 | select spid,program,pga_max_mem,pga_alloc_mem,pga_used_mem,pga_freeable_mem from v$process where spid in ( select spid from v$process where addr in ( select paddr from v$session where sid in ( select distinct sid from v$mystat))); |
1 2 | select spid,program,pga_max_mem,pga_alloc_mem,pga_used_mem,pga_freeable_mem from v$process where PROGRAM like '%jiagulun%' |
--查看PGA各个区域使用情况
1 2 3 4 5 6 7 | select p.PROGRAM,p.SPID,pm.CATEGORY,pm.ALLOCATED,pm.USED,pm.MAX_ALLOCATED from v$process p,v$process_memory pm where p.PID=pm.PID and p.SPID in ( select spid from v$process where addr in ( select paddr from v$session where sid in ( select distinct sid from v$mystat ) )); |
AlfredZhao©版权所有「从Oracle起航,领略精彩的IT技术。」
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 基于DeepSeek R1 满血版大模型的个人知识库,回答都源自对你专属文件的深度学习。
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· Tinyfox 简易教程-1:Hello World!