本人使用tomcat+oracle9i开发项目,当多个用户一起update数据库中的yuqingdongtai表时,操作就变得很慢了。而操作其他的表并不受到影响,我在pl/sql中测试的:SQL> select max(id) from yuqingdongtai;
MAX(ID)
----------
630472
Executed in 27.047 seconds
SQL> update yuqingdongtai set isextract='tjf',isignore=1 where id=630472;
1 row updated
Executed in 25.516 seconds
SQL> select count(*) from users;
COUNT(*)
----------
15
Executed in 0.032 seconds而等了一段时间过后,再次查询select max(id) from yuqingdongtai;速度就快很多了。
然后我一个用户两个用户一起进行update操作,速度还是很快的,但只要超过三个人,速度立马就慢了!!!
这可能是什么原因造成的啊?是不是表锁住了???
MAX(ID)
----------
630472
Executed in 27.047 seconds
SQL> update yuqingdongtai set isextract='tjf',isignore=1 where id=630472;
1 row updated
Executed in 25.516 seconds
SQL> select count(*) from users;
COUNT(*)
----------
15
Executed in 0.032 seconds而等了一段时间过后,再次查询select max(id) from yuqingdongtai;速度就快很多了。
然后我一个用户两个用户一起进行update操作,速度还是很快的,但只要超过三个人,速度立马就慢了!!!
这可能是什么原因造成的啊?是不是表锁住了???
解决方案 »
- type语句
- 谁知道oracle系统自带哪些用户,例如:SYS,SCOTT等
- 请问各位大侠,我想把一台机器的数据库整个移值到另一台机器上,最方便的办法是什么?还有,怎么把建整个数据库的sql代码导出来。谢谢
- 求定时的exp导出语句。
- 如何得知数据库中有哪些视图?
- sqlplus问题
- 求助:CrystalReport for VS.NET + Oracle开发报表时所遇到的问题,在线等,叩谢!!!(没有办法,级别低,分少!)
- 能在存储过程中新建或删除一个表吗?
- SQL*Loader-524: 在 datafile (aaa.ctl) 结尾发现部分记录
- Oracle 10g RAC 下RMAN的配置
- 【100分】如何把查询出来的结果存到某个表中?
- 问一个transaction的问题,有点急,大家帮忙看看阿!
-- update 的时候会对表加行级锁,在这个事务还没有提交或者回滚之前,其他事务是不能进行操作的。 所以同时操作会有等待,这个等待就表现在慢上。 关于锁的内容,参考:
锁 死锁 阻塞 Latch 等待 详解
http://blog.csdn.net/tianlesoftware/archive/2010/08/19/5822674.aspx
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977(满)
DBA3 群:63306533; 聊天 群:40132017
select sid,lockwait from v$session???
update 语句执行时间过长的原因有可能是被其他锁阻塞,但是 select 语句执行时间过长的原因应该不是被其他锁阻塞。lz 可以在执行 select 语句时查询 v$session_wait 视图,检查一下 select 语句在那些事件上等待了过长的时间。