在V$SQL视图中找到程序老是停在这个语句上
select count(*) CNT from TABLE_NAME where cl > :a
上面的语句直接执行效率很快。
USER_IO_WAIT_TIME
11824000544
这个问题遇到很多次,在程序中老有SQL语句执行不出来结果,但是直接在TOAD或者PLSQL中执行效率很快。
请问高手此问题如何解决?是什么原因造成的?
select count(*) CNT from TABLE_NAME where cl > :a
上面的语句直接执行效率很快。
USER_IO_WAIT_TIME
11824000544
这个问题遇到很多次,在程序中老有SQL语句执行不出来结果,但是直接在TOAD或者PLSQL中执行效率很快。
请问高手此问题如何解决?是什么原因造成的?
解决方案 »
- 关于oracle 效率问题
- oracle的date字段插入
- oracle exp 导出 总是卡在 “正在导出簇定义....” 急
- -- 问 -- 低版本客户端访问高版本数据库问题
- Oracle监听器启动问题
- oracle中查看表里各字段的备注信息
- sql server数据库迁移到ORACLE!
- 在存储过程中用动态sql建表,提示:权限不足?授权dba,还是同样的提示。什么原因?谢谢!
- 当select语句中同时使用内联和外联,或者多次使用内联或者外联时,其执行的顺序和机理是怎样的?
- ORA-00132: syntax error or unresolved network name 'lsnr2'
- oracle中有没有算分位数的函数?或者怎么能算出来分位数?
- 求SQL
-------------------------------------------
(1) 检查问题出现时的环境状况:
(a)CPU情况,是否有程序很忙,可能占用了磁盘IO很多、数据库IO很多,导致其它进程等待资源。
(b)本程序的内存是否很大。可能导致进程达到操作系统的资源配额限制。
(c)数据库的IO情况,可以在OEM中看到。可能有其它事务占用了IO资源。
(d)session锁等待情况,可以在toad中看到。是否该语句等待其他语句执行的锁释放。尤其是当该表是一个事务很多的表情形下。
(2) 如果上述都不是问题,估计要更多的跟踪一下程序,可能程序挂在什么地方了。
(3) "但是直接在TOAD或者PLSQL中执行效率很快。"这只能说明:(a)没有语法错误 (b)可以在正常情况下较快执行。
程序内存不大,并且存储过程也有类似情况。
数据库的IO没看,不会看,但是整个主机的IO一直很高。
当时是没锁的。该表确实有其他程序写入,但是就一个程序写入,把程序写入的程序停了,还是有这样的情况。
我想不会是程序的问题。本函数内的实现很简单,就是连数据库取需要的值放入容器。
数据库的IO没看,不会看,但是整个主机的IO一直很高。
----------------------------------------------
可能就是这个问题