PGA统计信息相关
2013-05-31 17:44
204 查看
1)V$PGASTAT
提供了PGA内存使用情况的相关信息,以及目前自动PGA内存管理的统计信息。
select name,
to_char(decode(unit, 'bytes', value / 1024 / 1024, value), '999,999,999.9') value,
decode(unit, 'bytes', 'mbytes', unit) unit
from V$PGASTAT;
NAME VALUE UNIT
---------------------------------------------------------------- -------------- ------------
aggregate PGA target parameter 20,480.0 mbytes --目前PGA_AGGREGATE_TARGET参数的值。如果为0,就表示PGA内存自动管理机制是关闭的状态。
aggregate PGA auto target 18,370.5 mbytes --在PGA内存自动管理模式下,代表在PGA内存中的SQL工作区的数量
global memory bound 1,024.0 mbytes
total PGA inuse 572.0 mbytes
total PGA allocated 2,570.1 mbytes --目前实例分配的PGA内存空间总数
maximum PGA allocated 12,192.4 mbytes --曾分配的最大PGA空间是多少
total freeable PGA memory 1,986.4 mbytes
--PGA的最大可使用空间是多少。
process count 76.0
max processes count 96.0
PGA memory freed back to OS 39,700.3 mbytes
total PGA used for auto workareas 503.4 mbytes
maximum PGA used for auto workareas 9,895.6 mbytes
total PGA used for manual workareas .0 mbytes
--在PGA内存手动管理模式下,目前多少PGA内存被分配给SQL工作区使用。
maximum PGA used for manual workareas .5 mbytes
over allocation count .0
bytes processed 61,331.8 mbytes --此数值是当前实例启动后累加的值,当进程执行SQL语句时所使用空间的数值。
extra bytes read/written 15,459.1 mbytes
cache hit percentage 79.9 percent
--此数值是自当前实例启动后,PGA中的SQL工作区是否都分配有最佳的内存空间比例,当SQL工作区无法在最佳状态下运行时,会降低cache hit percentage的数值,此数值可以视为目前PGA的命中率(Hit Ratio)。
recompute count (total) 26,528.0
[b]2)V$SQL_WORKAREA
[/b]
V$SQL_WORKAREA显示了被游标使用的SQL工作区的相关信息:
V$SQL_WORKAREA
[align=center]
[/align]
[align=center]
[/align]
[align=center]查询前10个最占内存的SQL工作区:
[/align]
SELECT *
FROM (SELECT workarea_address, operation_type, policy, estimated_optimal_size
FROM V$SQL_WORKAREA
ORDER BY estimated_optimal_size)
WHERE ROWNUM <= 10;
[align=center][/align]
[align=center]查询游标使用SQL工作区的类型情况次数与相关SQL语句:[/align]
SELECT sql_text, sum(ONEPASS_EXECUTIONS) onepass_cnt, sum(MULTIPASSES_EXECUTIONS) mpass_cnt
FROM V$SQL s, V$SQL_WORKAREA wa
WHERE s.address = wa.address
GROUP BY sql_text
HAVING sum(ONEPASS_EXECUTIONS + MULTIPASSES_EXECUTIONS) > 0;
[align=center]
[/align]
[align=center]查询游标的执行计划[/align]
SELECT operation,
options,
object_name name,
trunc(bytes / 1024 / 1024) "input(MB)",
trunc(last_memory_used / 1024) last_mem,
trunc(estimated_optimal_size / 1024) optimal_mem,
trunc(estimated_onepass_size / 1024) onepass_mem,
decode(optimal_executions,
null,
null,
optimal_executions || '/' || onepass_executions || '/' || multipasses_executions) "O/1/M"
FROM V$SQL_PLAN p, V$SQL_WORKAREA w
WHERE p.address = w.address(+)
AND p.hash_value = w.hash_value(+)
AND p.id = w.operation_id(+)
AND p.address = '000000008EBE3A38'
AND p.hash_value = 889124229;
[align=center]
[/align]
[align=center]V$SQL_WORKAREA_ACTIVE[/align]
V$PROCESS
V$PROCESS显示了所有Oracle 进程的相关信息:
V$PROCESS
(续表)
V$PROCESS中针对PGA的使用情况,主要可观察PGA_USED_MEM、PGA_ALLOC_ MEM、PGA_FREEABLE_MEM与PGA_MAX_MEM这4个字段。
耗费PGA内存空间1 MB以上的用户会话:
select a.osuser,
a.username,
a.machine,
substr(a.program, 1, 20) "program",
b.PGA_USED_MEM,
b.PGA_ALLOC_MEM
from V$SESSION a, V$PROCESS b
where a.paddr = b.addr
and b.PGA_USED_MEM / 1024 / 1024 > 1
order by b.PGA_USED_MEM;
提供了PGA内存使用情况的相关信息,以及目前自动PGA内存管理的统计信息。
select name,
to_char(decode(unit, 'bytes', value / 1024 / 1024, value), '999,999,999.9') value,
decode(unit, 'bytes', 'mbytes', unit) unit
from V$PGASTAT;
NAME VALUE UNIT
---------------------------------------------------------------- -------------- ------------
aggregate PGA target parameter 20,480.0 mbytes --目前PGA_AGGREGATE_TARGET参数的值。如果为0,就表示PGA内存自动管理机制是关闭的状态。
aggregate PGA auto target 18,370.5 mbytes --在PGA内存自动管理模式下,代表在PGA内存中的SQL工作区的数量
global memory bound 1,024.0 mbytes
total PGA inuse 572.0 mbytes
total PGA allocated 2,570.1 mbytes --目前实例分配的PGA内存空间总数
maximum PGA allocated 12,192.4 mbytes --曾分配的最大PGA空间是多少
total freeable PGA memory 1,986.4 mbytes
--PGA的最大可使用空间是多少。
process count 76.0
max processes count 96.0
PGA memory freed back to OS 39,700.3 mbytes
total PGA used for auto workareas 503.4 mbytes
maximum PGA used for auto workareas 9,895.6 mbytes
total PGA used for manual workareas .0 mbytes
--在PGA内存手动管理模式下,目前多少PGA内存被分配给SQL工作区使用。
maximum PGA used for manual workareas .5 mbytes
over allocation count .0
bytes processed 61,331.8 mbytes --此数值是当前实例启动后累加的值,当进程执行SQL语句时所使用空间的数值。
extra bytes read/written 15,459.1 mbytes
cache hit percentage 79.9 percent
--此数值是自当前实例启动后,PGA中的SQL工作区是否都分配有最佳的内存空间比例,当SQL工作区无法在最佳状态下运行时,会降低cache hit percentage的数值,此数值可以视为目前PGA的命中率(Hit Ratio)。
recompute count (total) 26,528.0
[b]2)V$SQL_WORKAREA
[/b]
V$SQL_WORKAREA显示了被游标使用的SQL工作区的相关信息:
V$SQL_WORKAREA
字 段 名 | 数据类型 | 说 明 |
ADDRESS | RAW(4 | 8) | 游标句柄的地址 |
HASH_VALUE | NUMBER | 游标句柄的Hash值, V$SQLAREA查询此字段与 ADDRESS字段,可以查出 此游标相关的SQL语句 |
CHILD_NUMBER | NUMBER | 使用此SQL工作区的子游标数量 |
WORKAREA_ADDRESS | RAW(4 | 8) | SQL工作区句柄的地址 |
OPERATION_TYPE | VARCHAR2(20) | SQL工作区的操作类型, 如Sort、Hash Join、 Group By、Order By等 |
OPERATION_ID | NUMBER | 为执行计划运行值的地址, 可以和V$SQL_ PLAN结合使用 |
POLICY | VARCHAR2(10) | SQL工作区的模式,选项 为MANUAL与AUTO |
ESTIMATED_OPTIMAL_SIZE | NUMBER | 估算需要多大的空间容纳 此SQL工作区,来执行内存中运行 |
ESTIMATED_ONEPASS_SIZE | NUMBER | 估算需要此SQL工作区来执 行一次内存中运行时所需的大小 |
LAST_MEMORY_USED | NUMBER | 最后一次游标执行时,所使 用的工作区大小 |
LAST_EXECUTION | VARCHAR2(10) | 最后一次执行游标时,工 作区请求内存的方式, Optimal、Onepass、Mutipass |
LAST_DEGREE | NUMBER | 最后一次执行的DOP (Degree of Parallelism,并行度) |
TOTAL_EXECUTIONS | NUMBER | 此SQL工作区启动的次数 |
OPTIMAL_EXECUTIONS | NUMBER | 此SQL工作区运行于 Optimal模式的次数 |
ONEPASS_EXECUTIONS | NUMBER | 此SQL工作区运行于 Onepass模式的次数 |
MULTIPASSES_EXECUTIONS | NUMBER | 此SQL工作区运行于 Mutipass模式的次数 |
字 段 名 | 数据类型 | 说 明 |
ACTIVE_TIME | NUMBER | 此SQL工作区启动后的时间 |
MAX_TEMPSEG_SIZE | NUMBER | 此SQL工作区在内存中所建立 的临时空间的最大大小 |
LAST_TEMPSEG_SIZE | NUMBER | 最后一次SQL工作区所在内存 中所建立的临时空间的大小 |
[/align]
[align=center]
[/align]
[align=center]查询前10个最占内存的SQL工作区:
[/align]
SELECT *
FROM (SELECT workarea_address, operation_type, policy, estimated_optimal_size
FROM V$SQL_WORKAREA
ORDER BY estimated_optimal_size)
WHERE ROWNUM <= 10;
[align=center][/align]
[align=center]查询游标使用SQL工作区的类型情况次数与相关SQL语句:[/align]
SELECT sql_text, sum(ONEPASS_EXECUTIONS) onepass_cnt, sum(MULTIPASSES_EXECUTIONS) mpass_cnt
FROM V$SQL s, V$SQL_WORKAREA wa
WHERE s.address = wa.address
GROUP BY sql_text
HAVING sum(ONEPASS_EXECUTIONS + MULTIPASSES_EXECUTIONS) > 0;
[align=center]
[/align]
[align=center]查询游标的执行计划[/align]
SELECT operation,
options,
object_name name,
trunc(bytes / 1024 / 1024) "input(MB)",
trunc(last_memory_used / 1024) last_mem,
trunc(estimated_optimal_size / 1024) optimal_mem,
trunc(estimated_onepass_size / 1024) onepass_mem,
decode(optimal_executions,
null,
null,
optimal_executions || '/' || onepass_executions || '/' || multipasses_executions) "O/1/M"
FROM V$SQL_PLAN p, V$SQL_WORKAREA w
WHERE p.address = w.address(+)
AND p.hash_value = w.hash_value(+)
AND p.id = w.operation_id(+)
AND p.address = '000000008EBE3A38'
AND p.hash_value = 889124229;
[align=center]
[/align]
[align=center]V$SQL_WORKAREA_ACTIVE[/align]
V$PROCESS
V$PROCESS显示了所有Oracle 进程的相关信息:
V$PROCESS
字 段 名 | 数据类型 | 说 明 |
ADDR | RAW(4) | 此进程的地址 |
PID | NUMBER | Oracle给予此进程的ID号码 |
字 段 名 | 数据类型 | 说 明 |
SPID | VARCHAR2(12) | 操作系统给予此进程的ID号码 |
USERNAME | VARCHAR2(15) | 操作系统上此进程的使用账号名称 |
SERIAL# | NUMBER | 进程的序列号码 |
TERMINAL | VARCHAR2(30) | 作业是从哪台服务器或PC上发出的 |
PROGRAM | VARCHAR2(48) | 运行程序的名称 |
TRACEID | VARCHAR2(255) | 跟踪文件的识别号码 |
BACKGROUND | VARCHAR2(1) | 当此字段的值是1,代表后台 进程。如果是Null,代表是一般进程 |
LATCHWAIT | VARCHAR2(8) | 代表进程所等待闩锁的地址, 如果值是Null代表没有等待任何闩锁 |
LATCHSPIN | VARCHAR2(8) | 代表进程所Pin住的闩锁的地 址,如果值是Null代表没 有Pin住任何闩锁 |
PGA_USED_MEM | NUMBER | 代表此进程目前使用的PGA 内存空间大小 |
PGA_ALLOC_MEM | NUMBER | 代表此进程目前被分配到的PGA 内存空间大小 |
PGA_FREEABLE_MEM | NUMBER | 代表此进程目前被分配到的PGA 内存空间有多少可以被释放 |
PGA_MAX_MEM | NUMBER | 代表此进程曾经被分配到的 最大PGA内存空间是多少 |
耗费PGA内存空间1 MB以上的用户会话:
select a.osuser,
a.username,
a.machine,
substr(a.program, 1, 20) "program",
b.PGA_USED_MEM,
b.PGA_ALLOC_MEM
from V$SESSION a, V$PROCESS b
where a.paddr = b.addr
and b.PGA_USED_MEM / 1024 / 1024 > 1
order by b.PGA_USED_MEM;
相关文章推荐
- 查询对象统计信息相关SQL
- iostat 用于输出 CPU 和磁盘 I/O 相关的统计信息。
- 收集到较为直观和详细的执行计划和相关统计信息
- Hadoop Demo(二)【获取天气相关的统计信息】
- 统计cpu相关信息
- MySQL索引统计信息更新相关的参数
- SQL执行计划及统计信息相关视图
- oracle优化器统计信息相关
- SQL Server 统计信息相关操作(转)
- thinkphp关于考生信息相关统计
- 统计信息及相关说明
- mysql统计信息相关
- Linux mpstat 命令- 报告处理器的相关统计信息
- Linux mpstat 命令- 报告处理器的相关统计信息
- SQL Server 统计信息相关的命令
- 统计信息相关资料的总结(原创)
- Oracle 统计信息的相关操作
- 表统计信息(storge)相关
- MySQL中的统计信息相关参数介绍
- MySQL索引统计信息更新相关的参数