oracle 11g中部分存储过程,出现4个表连接时,即使没有数据,也会出现死锁,无法查询到数据。在使用临时表讲连接次数减少后,性能提高!!!!!!!各位专家是否有其他解决方法。还有一个问题是oracle中的临时表在有多表连接时,空间增长过快,除了删除临时表从新建立新新临时表空间,还有其他比较好的解决方法。!!!!!!急急急。
解决方案 »
- 新人求解如何让表的输出对齐
- ora-00904 无效的标识符
- mysql 改密码???
- Oracle 查询的一个问题....很棘手~~~ 大家帮忙想想..
- SKIP LOCKED 出错
- parallel 的数值参数怎么设置?
- 如何用ODP.net(Oracle.DataAccess.Client非System.Data.OracleClient)生成类型化的DataSet?
- 怎样在客户端连接服务器端的oracle数据库
- 请问:下面两个建表语句有什么区别?
- 【高分求书】:ORACLE8 PL/SQL程序设计(美:SCOTT URMAN)
- 【性能问题】 建了表分区,建与不建全局索引,效果差距如何?
- 存储过程 求将Sql 转换成 Oracle
处理如下事务:
1.建临时表1
2.建临时表2
n-2.查询你要的结果并保存在临时表final
n-1.将final表数据传出,视需求而定,比如我们项目是依照final表数据使用sqr产生pdf文件,或者导出成txt文件和xls文件
n.drop所有临时表写一个公共的main procedure,while循环处理一系列事务,任意环节出错则将该环节循环数i记录在一个专门的表compl_parm,下次运行时候直接读出,以此获得restart能力。
不需要没次删除。会话结束,数据自动会消失。出现4个表连接时,即使没有数据,也会出现死锁
出现是检查一下v$lock和v$locked_objects表,看看有什么对象。你这里的多表连接指的什么?
你的过程里面是不是有其他的SQL会将表锁死。select b.owner,b.object_name,a.SESSION_ID,a.LOCKED_MODE,a.OS_USER_NAME
from v$locked_object a,dba_objects b
where a.OBJECT_ID=b.object_id使用这个来看看锁死的信息。然后KILL掉。
临时表是不需要删除的,一个SESSION完结后自动清空。