1,锁表语句简单查询方法   select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time 2,对于上面查询的结果来解锁,如下所示 alter system kill session '382,1125'   3,锁表详细信息查询   select dba_objects.object…
--查询数据库锁表记录 select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess, v$process p where ao.object_id = lo.object_id and lo.session_id = sess.sid -- and…
--查看数据库最大连接数 select value from v$parameter where name = 'processes'; --更改数据库连接数 alter system scope = spfile; --查看被锁的表 select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id; --查看当前…
下午代码迁移,更新数据库记录时for update语句无法执行,数据库被锁,KILL掉几个进程搞定. Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?简要介绍一下. 锁表查询的代码有以下的形式: select count(*) from v$locked_object; select * from v$locked_object; 查看哪个表被锁 select b.owner,b.object_name,a.session_id,a.lo…
在团队开发一个项目的时候,避免不了两个或两个以上的人同时操作某一数据库中的同一张表,这时候,如果一个用户没有提交事务,或者忘记提交事务,那么其他用户就不能对这张表进行操作了,这是很烦人的事情,下面是查询是哪个用户将表锁住了,并且生成解表语句的sql: Select O.OWNER, O.OBJECT_NAME, O.OBJECT_TYPE, (SELECT C.MACHINE FROM V$SESSION C WHERE C.SID = S.SID), (SELECT C.PROGRAM FRO…
最近在做项目中遇到多表关联查询排序的效率问题(5张以上40W+数据的表),查询一次大概要20多秒,经过一番苦思冥想,处理方案如下: 1.软件设计初期,需要一对一关联的表应该设计在一张大表里,这样虽然字段多些,但是对于查询的速度提升是非常明显的,特别是在排序的情况下. 2.我们在关联的时候可能需要排序的表只是其中的一张或者两张,我们可以先针对这两张需要排序的表先查询排序,然后再用这两个表查询的结果关联其他表.代码如下: SELECT * FROM ( SELECT * FROM M_RK_JBXX…
一.前言 在联机事务处理(OLTP)的数据库应用系统中,多用户.多任务的并发性是系统最重要的技术指标之一.为了提高并发性,目前大部分RDBMS都采用加锁技术.然而由于现实环境的复杂性,使用加锁技术又不可避免地产生了死锁问题.因此如何合理有效地使用加锁技术,最小化死锁是开发联机事务处理系统的关键. 二.死锁产生的原因 在联机事务处理系统中,造成死机主要有两方面原因. 一方面,由于多用户.多任务的并发性和事务的完整性要求,当多个事务处理对多个资源同时访问时,若双方已锁定一部分资源但也都需要对方已锁定…
开发小工具的原因: 1.我们公司的开发是客户端用C#,服务端用Java,前后台在通讯交互的时候,会用到Oracle数据库的字段,因为服务器端有公司总经理开发的一个根据Oracle数据库的表生成的class文件,每次都是等服务端都写好了实体类以后,我们再复制.粘贴,修改字段的类型为string,因为在生成的时候,是根据Oracle数据库里的字段类型生成的java文件,但是我们在前后台通信的时候,为了不失精度的一些问题,一般都用string类型来传递,因此每次修改都比较费事. 2.VS2015在封装…
最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernate spring 这里使用spring的定时来处理,自己写了个项目进行测试,目前项目可以跑的通, 在测试当中遇到了问题,就是使用 spring 提供的jdbcTemplate进行操作数据,使用的是dbcp数据源,可以查询到数据,但是inert update delete 操作数据时,看起来成功了,但…
Oracle的锁表与解锁 SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type, s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser FROM v$session s,v$lock l,dba_objects o WHERE…