网站首页 > 技术文章 正文
从 v$sysstat 视图中可以找出Session 使用CPU 的情况,例如,可以统计Parse CPU to totalCPU ratio:该项显示总的CPU 花费在执行及解析上的比率。如果这项比率较低,说明系统执行了太多的解析。
总的 CPU 花费在执行及解析上的比率 = 1 - (parse time cpu / CPU used by this session),可通过以下SQL 语句统计出该项数据。
select 1-(a.value/b.value)
from v$sysstat a,v$sysstat b
where a.name='parse time cpu' and
b.name='CPU used by this session';
如果发现CPU 使用比较多,可用以下语句进一步找出使用CPU 多的用户Session:
select a.sid,spid,status,substr(a.program,1,40)
prog,a.terminal,osuser,value/60/100 value
from v$session a,v$process b,v$sesstat c
where c.statistic#=12
and c.sid=a.sid
and a.paddr=b.addr
order by value desc;
注意:
SQL 语句中的12 是指cpu used by this session。
再进一步找出使用CPU 多的SQL 语句,可查找指定SPID 正在执行的SQL 语句:
SELECT P.pid pid,S.sid sid,P.spid spid,S.username username,S.osuser
osname,P.serial#
S_#,P.terminal,P.program
program,P.background,S.status,RTRIM(SUBSTR(a.sql_text, 1, 80)) SQL
FROM v$process P, v$session S,v$sqlarea A
WHERE P.addr = s.paddr
AND S.sql_address = a.address (+)
AND P.spid LIKE '%&1%';
注意:
在Linux 环境中可以通过ps 查看进程信息,包括pid;而Windows 中任务管理器的PID与Oracle 的v$process 中的pid 不能一一对应。Windows 是多线程服务器,每个进程包含一系列线程,这点与UNIX 等不同,UNIX 每个Oralce 进程独立存在,在NT 上所有线程由Oralce 进程衍生。
也可以指定SID 查看正在执行的SQL 语句:
也可以指定SID 查看正在执行的SQL 语句:
SELECT P.pid pid,S.sid sid,P.spid spid,S.username username,S.osuser
osname,P.serial#
S_#,P.terminal,P.program
program,P.background,S.status,RTRIM(SUBSTR(a.sql_text, 1, 80)) SQL
FROM v$process P, v$session S,v$sqlarea A
WHERE P.addr = s.paddr
AND S.sql_address = a.address (+)
AND s.sid = '136';
猜你喜欢
- 2025-07-17 监控Oracle Cloud负载均衡器:Applications Manager释放最佳性能
- 2024-10-22 程序员笔记|解读Oracle AWR性能分析报告
- 2024-10-22 「优化体系」Oracle优化必备之动态性能视图v$session_longops
- 2024-10-22 英方i2Active发布3.1版本,针对Oracle的多项性能大幅度提升
- 2024-10-22 Oracle SQL性能优化技巧 oracle sql优化一般从那几个方面入手
- 2024-10-22 linux学习~Oracle数据库性能分析利器-AWR报告
- 2024-10-22 Oracle 性能分析与诊断|Buffer Cache Hit Ratio 诊断
- 2024-10-22 Oracle AI 性能优化指南探讨 oracle语句性能优化
- 2024-10-22 ORACLE SQL性能优化总结 oracle数据库性能优化方法论和最佳实践
- 2024-10-22 详解ORACLE DBA判断IO有性能问题的标准--操作系统和AWR报告
你 发表评论:
欢迎- 611℃几个Oracle空值处理函数 oracle处理null值的函数
- 603℃Oracle分析函数之Lag和Lead()使用
- 592℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 589℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 583℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 576℃【数据统计分析】详解Oracle分组函数之CUBE
- 566℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 558℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- 每天从外包系统同步百万数据,用什么方案?Java实战讲解
- 搞懂java同步块(synchronized),避免踩坑
- OceanBase 推出单机版 高度兼容MySQL和Oracle
- 用DataX实现两个MySQL实例间的数据同步
- 【mykit-data】 数据库同步工具(数据库间数据同步)
- 从 PostgreSQL 到 DolphinDB:数据实时同步一站式解决方案
- 什么是实时数据同步?纯干货解读!(什么是实时数据传输)
- 通过ETL工具完成达梦数据库数据同步至数仓Oracle的具体实现
- 渗透测试岗位面试分享,多年经验(渗透测试岗位职责)
- LabVIEW实现Oracle数据库的访问(labview读取数据库的数据)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)