oracle数据库老是死

oracle数据库老是死,第1张

估计你的问题是这个,优化sql!仔细看看sql!

查看用户最大游标数量

这个cursor主要是由于应用程序端(JAVA)造成的,测试结果是

1、对于jdbc来说,每一个从Connection中产生的Statement相当于一个Session,此时会在v$session中产生或者重用一条session记录,v$open_cursor中记录的就是每个session打开的cursor数量,一个对多个父子关系。

2、除非Statement close物理关闭,否则在这个session在v$open_cursor中相关联的记录将一直存在,不会释放。 jakarta dbcp数据库连接池有一个StatementCache功能,它不会物理关闭Statement,所以造成了我们的cursor溢出,看来Oracle的Statement不能再客户端进行Cache,当我的cache size就算为1,运行一段时间cursor也会溢出,我们必须Close Statementsession来确保相应Session中打开的游标关闭。

3、系统参数open_cursor的含义就是这个Session中能够打开游标的最大数,用SQL

表示如下:

select max(cursor_count) from (select count(*) cursor_count

from v$open_cursor where user_name='ORAL' group by sid)

当这条SQL返回结果达到open_cursor参数的取值,jdbc就会抛出

Oracle 最大游标数

2008-06-26 09:241.

检查数据库中的 OPEN_CURSORS 参数值。

可以使用如下查询语句:

SQL>show parameter open_cursors

2. 获取打开的游标数。

下面的查询按降序显示用户“SCOTT”为每个会话打开的游标数。

SQL>select o.sid, osuser, machine, count(*) num_curs

2 from v$open_cursor o, v$session s

3 where user_name = 'ORAL' and o.sid=s.sid and machine !='SYSTEM'

4 group by o.sid, osuser, machine

5 order by num_curs desc

3.'ORA-01000:超出最多允许打开的游标数'问题

可以修改oracle中最大游标数

(1)修改srvm/admin/init.ora文件中的OPEN_CURSOR;

(2)alter system set open_cursor=(游标数) scope=both;

(3)在应用程序中执行完数据库 *** 作后,及时关闭与数据库 *** 作相关对象(statement,resultset,connection)

4.主要原因

在程序中没有及时关闭statement等相关对象造成游标资源一直被占用!

注:造成'打开最大游标数'问题主要之程序代码方面造成的.

(1)在事务 *** 作是容易发生。

(2)程序中,在循环里面做statement *** 作时可能发生。

1SQL语句存在效率问题

比如为何是ORDER BY null?没有索引字段嘛?至少应该 ORDER BY id之类的

建议代码优化如下,测试版本11G,当然每个版本的数据库 效率都不一样

比分析函数效率高

select count(1) from 

    (select * from

        (select * from

            (select rownum rd,tt.* from test01 tt order by object_id) t

         where rd<10000) t1 where rd>=9000) t2 

     order by object_id

2改SQL语句也就会执行慢,不至于卡死,是生产库还是你自己搭建的测试库?

建议检查表大小,水位线等,必要是重建表或重新分析表数据或使用10046事件跟踪下

1、在做Oracle监听程序测试时,发现帐户已经被锁定。

2、在数据库安装电脑上,点击开始打开运行窗口。

3、在运行窗口输入CMD,调出命令提示符界面。

3、在命令提示符下面,用管理员身份登入到数据库sqlplus / as sysdba。

4、输入解锁命令alter user Scott account unlock后回车。

5、看见用户已更改的字样,表示命令已成功执行。

6、再切换到监听程序验证,原来的ora-28000帐户被锁定的提示已经不存在了。用户解锁成功。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10828518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存