select * from v$locked_object t1,dba_objects t2,v$session t3,v$process t4
where t1.OBJECT_ID=t2.object_id
and t1.SESSION_ID=t3.SID
and t3.PADDR=t4.ADDR
1、我一张表A,大概有500多万记录,定期需要对特定表进行更新操作update,操作时间略长,大概几十秒 2、前台用户并发50次/秒,也就是说,对这张表的操作也是50次/秒的查询 问题:在做update操作时会自动锁表,show processlist时会看到locked状态,这时的select 查询都会处于等待状态了,也就是说,前台用户的请求就延时了。请问,能不能在做update时不锁表呢?因为不锁也不影响我的查询的正确性。 [ 本帖最后由 chlinux 于 2008...
1、我一张表A,大概有500多万记录,定期需要对特定表进行更新操作update,操作时间略长,大概几十秒 2、前台用户并发50次/秒,也就是说,对这张表的操作也是50次/秒的查询 问题:在做update操作时会自动锁表,show processlist时会看到locked状态,这时的select 查询都会处于等待状态了,也就是说,前台用户的请求就延时了。请问,能不能在做update时不锁表呢?因为不锁也不影响我的查询的正确性。 [ 本帖最后由 chlinux 于 2008...
EC程序有三个进程创建表,创建完以后另外一张表的不同记录。create table时偶尔会出现锁表(已设置set lock mode to wait 10)。 如: tablelist中存在tablename(表名),create_finish(成功标志)。表aaa,bbb,ccc在tablelist中有记录,每创建成功一个表,修改tablelist中相应的记录。 进程1: create table aaa(........) in workdbs; if(SQLCODE) update tablelist set create_finish='Y' where tablname='aaa'; 进程2: c...
后台服务程序基于tuxedo开发,tuxedo配置文件中设置OPENINFO打开数据库,server程序中设置SET LOCK MODE TO WAIT 5 但实际测试发现该设置未生效,从出错日志上看并未等待,并发操作时发现大量数据库-243错,该表设置为行级锁,操作在该表唯一索 引上,该表无其它索引,请教各位如何处理?谢谢!
目前数据库用的是oracle,以前公司程序中 如果要对表做update操作,都需要先用游标lock,然后再做update.说是防止多进程死锁。 是不是这样啊? 如果若干个进程同时做update,我觉得oracle会按照update的先后来做表更改,好像游标lock 根本没什么用阿。 恳请数据库达人来解答。:emn10:
用mysqldump备份数据库的时候会锁表,对于innodb表可以使用--single-transaction选项,对于myisam表可以使用--lock-table=false,如果是myisam和innodb混合的数据库,是不是要加选项--single-transaction --lock-table=false? 即使在凌晨5-6点,数据库操作依然频繁,使用上述方法备份后,备份的数据一致性能保证吗?同时,外界数据库操作不会被延迟? 期待!