暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 没有利用所有处理器容量

ASKTOM 2020-06-30
391

问题描述

亲爱的先生,

谢谢你的支持

我有Oracle 11g数据库服务器,它有2个双核处理器。这是非常关键的数据库,我们经常遇到性能问题。
我们注意到CPU利用率没有跨越5%,并且大多数处理器都没有使用 (4个处理器中有1个正在使用)。

请您建议如何利用所有处理器并提高11g数据库的性能。


谢谢你,

问候
苏巴拉奥·达萨里

专家解答

如果应用程序运行缓慢,但您只使用5% 可用的CPU,则应用程序/数据库将花费大量时间做 “其他事情”。

这可能是其他的任何组合

-磁盘I/O
-网络
-阻止会话
-运行应用程序代码
-...

要弄清楚时间的去向,请配置您的应用程序!

你可以用SQL跟踪这样做:

alter session set tracefile_identifier = app_trace;
exec sys.dbms_monitor.session_trace_enable ( session_id => :session, serial_num => :serial#, waits => true, binds => true );

... capture execution details ...
  
exec sys.dbms_monitor.session_trace_disable ( session_id => :session, serial_num => :serial# );


然后使用TKPROF (或您选择的其他工具) 从数据库服务器获取跟踪文件。在以下位置阅读有关如何执行此操作的更多信息:

https://blogs.oracle.com/sql/how-to-create-an-execution-plan#tkprof

或者,如果你正在调用PL/SQL,你可以使用层次探查器:https://oracle-base.com/articles/11g/plsql-hierarchical-profiler-11gr1

一旦你有了这些配置文件,你就可以看到系统把所有时间都花在了哪里。没有这个,我们所能做的就是盲目猜测 (这可能是错误的)。

如果您需要帮助理解上述内容的输出,请在此处发布它们作为评论,我们将为您提供帮助。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论