oracle运行速度慢,是什么原因 oracle运行速度慢, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 硬件上看cpu、磁盘IO是否高。软件上看oracle的内存设置,运行缓慢时的session_wait,告警日志。 如何看oracle的内存设置,运行缓慢时的session_wait,告警日志。 主要看session_wait,分析下等待原因看看跑的最高的SQL是什么一般来说,在配置正常的情况,大多数是SQL的问题比如说常用的语句没用到索引之类的 oracle运行速度慢原因很多.可以是操作系统层面慢导致,也可以是oracle自身慢导致.查看操作系统主要看cpu/disk io/ram交换情况,unix可以使用top/vmstat/iostat等的命令.windows应用性能查看器查看.oracle自身运行慢,可能oracle的参数配置有问题,或者oracle中存在大量消耗资源的sql,如何查看这些sql,通过下面的方法:查看正在执行的sql(可以根据'unix系统进程号'或者sid):SELECT S.SQL_TEXT, V.SID, P.SPID, S.HASH_VALUE FROM GV$SESSION V, GV$PROCESS P, GV$SQL S WHERE V.STATUS = 'ACTIVE' AND P.ADDR = V.PADDR AND S.HASH_VALUE = V.SQL_HASH_VALUE --AND P.SPID = 'unix系统进程号' --AND V.SID = 'oracle session号' ; 最好是先放一个慢的时候的statspack report上来吧.仅仅是个慢.让别人去猜吗? 一 察看OS的信息top 命令oad averages: 0.05, 0.10, 0.09 10:18:32307 processes: 304 sleeping, 1 zombie, 1 stopped, 1 on cpuCPU states: 96.0% idle, 0.3% user, 2.6% kernel, 1.1% iowait, 0.0% swapMemory: 4096M real, 2660M free, 1396M swap in use, 3013M swap free PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND11928 a21562 1 0 0 3008K 2496K cpu/1 0:02 1.12% top14965 mpgj76 4 59 0 10M 3696K sleep 3:09 0.18% view_server二 察看数据库的等待事件Select count(*), p1, p2, p3 from v$session_wait where event = ‘buffer busy waits’ group by p1,p2,p3;在buffer busy waits等待事件中P1 = file#P2 = block#P3 = id ( 此id对应为等待的原因)按照p1,p2,p3 group是为了明确buffer busy waits的等待集中在哪些对象上。 看这里http://fronkx.blog.hexun.com/17331585_d.html 1.说说你的硬件配置;2.说说你的操作系统;3.说说你的Oracle版本和你的sql(使用v$session);尽可能说详细点,并给出你的初步判断,否则如大海捞针。 不要用到的ORACLE的启动不要开,本来ORACLE就很吃内存~~~~~~~~~~ 做个statspack,再具体问题具体分析 我把sp封装成界面成,不过还没有完善,无法提供下载http://blog.csdn.net/lzlspb/archive/2008/09/10/2908053.aspx 急需 情人节...加班中...散分!!! 请问怎样建立dblink 关于oracle培训咨询 怎么得出一个表中列的数量呢? 如何实现这样特殊的子查询 怎样往oracle中插入null值啊?请告诉我sql语句的写法~~~~~~谢谢! 我用Enterprise Manager Configuration Assistant创建资料库时发生错误,求救 难道oracle的关联查询有bug?在线等待,解决问题即送分! Oracle使用命令新建的用户在本地客户端自带的plsql里可以登录,但在navicat中始终无法登录. 这样的SQL 还能优化吗? 请教一个特别的分组查询语句问题
软件上看oracle的内存设置,运行缓慢时的session_wait,告警日志。
看看跑的最高的SQL是什么一般来说,在配置正常的情况,大多数是SQL的问题
比如说常用的语句没用到索引之类的
oracle运行速度慢原因很多.
可以是操作系统层面慢导致,也可以是oracle自身慢导致.
查看操作系统主要看cpu/disk io/ram交换情况,unix可以使用top/vmstat/iostat等的命令.windows应用性能查看器查看.oracle自身运行慢,可能oracle的参数配置有问题,或者oracle中存在大量消耗资源的sql,如何查看这些sql,通过下面的方法:查看正在执行的sql(可以根据'unix系统进程号'或者sid):
SELECT S.SQL_TEXT, V.SID, P.SPID, S.HASH_VALUE
FROM GV$SESSION V, GV$PROCESS P, GV$SQL S
WHERE V.STATUS = 'ACTIVE'
AND P.ADDR = V.PADDR
AND S.HASH_VALUE = V.SQL_HASH_VALUE
--AND P.SPID = 'unix系统进程号'
--AND V.SID = 'oracle session号'
;
top 命令
oad averages: 0.05, 0.10, 0.09 10:18:32
307 processes: 304 sleeping, 1 zombie, 1 stopped, 1 on cpu
CPU states: 96.0% idle, 0.3% user, 2.6% kernel, 1.1% iowait, 0.0% swap
Memory: 4096M real, 2660M free, 1396M swap in use, 3013M swap free PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND
11928 a21562 1 0 0 3008K 2496K cpu/1 0:02 1.12% top
14965 mpgj76 4 59 0 10M 3696K sleep 3:09 0.18% view_server二 察看数据库的等待事件
Select count(*), p1, p2, p3 from v$session_wait where event = ‘buffer busy waits’ group by p1,p2,p3;在buffer busy waits等待事件中
P1 = file#
P2 = block#
P3 = id ( 此id对应为等待的原因)按照p1,p2,p3 group是为了明确buffer busy waits的等待集中在哪些对象上。
2.说说你的操作系统;
3.说说你的Oracle版本和你的sql(使用v$session);尽可能说详细点,并给出你的初步判断,否则如大海捞针。
~~~~~~~~~~
http://blog.csdn.net/lzlspb/archive/2008/09/10/2908053.aspx