我加了 dba 权限还是一样!我的联接串: <add key="OleDBConnectionString" value="Provider=OraOLEDB.Oracle;Data Source=devdb.Server;User Id=EpsasAdmin;Password=EpsasAdmin;"/> 一条肯定都会锁的SQL语句: DELETE FROM satbvaluetask WHERE NOT nid IN (SELECT satbvaluetask.nid FROM satbvaluetask, satbgradelib, satbgradestandard WHERE satbvaluetask.strprjnum = satbgradelib.strprjnum AND satbgradelib.strguid = satbgradestandard.strgradeguid AND satbvaluetask.strserialnum = satbgradestandard.strserialnum AND satbgradestandard.nitemtype = 1)执行上述语句 satbvaluetask 一定被锁(任何情况,oralce刚启动一个用户也是),程序就没有返回值。程序锁死小弟把 联接串 与 SQL 语句都贴出来, 看是不是这里面的问题!
我在程序调试的时候,的确是用 PLSQL DELVELOPER 把程序中的 SQL 取出来,运行。有时会和程序里面一样,执行SQL后,一直运行,不返回结果,有时又很快。 你说的情况应该也会有,但我把服务器重起后,从一台新机器 用 IE 访问 我的系统,还是会有上面说的情况。 即便是这样,有没有好的解决方法呢?
这个和我上面说的情况有关系吗? 怎么才能给这个 EPSASADMIN 用户加上访问 数据库的动态性能视图表的权限呢? 我在网上其它地方也查了一下,我想也应该和 (豆腐干) 兄说的类似,表被锁了。那么到底应该怎么处理呀? 去程序中优化我的SQL? 还是什么别的办法? 望各位帮帮我呀! (分不是问题!)
C:> sqlplus /nolog
SQL> CONN / AS SYSDBA --如果不在服务器上应该为 CONN SYS/[SYSPWD]@[SERVICENAME] AS SYSDBA
SQL> GRANT DBA TO [USER_NAME];但一般情况下不用给一般用户DBA权利,一般用户也不需要访问动态性能视图表
2、一般情况下表是不会长时间被锁的,如果是因为PLSQL DEVELOPER原因把表锁了,只需要手动解锁就可以了,不用特别处理。
现在在系统中多数执行 比较复杂的删除语句就会锁表,程序没有反映。哎真是郁闷哟!
<add key="OleDBConnectionString" value="Provider=OraOLEDB.Oracle;Data Source=devdb.Server;User Id=EpsasAdmin;Password=EpsasAdmin;"/> 一条肯定都会锁的SQL语句: DELETE FROM satbvaluetask
WHERE NOT nid IN (SELECT satbvaluetask.nid
FROM satbvaluetask, satbgradelib, satbgradestandard
WHERE satbvaluetask.strprjnum = satbgradelib.strprjnum
AND satbgradelib.strguid = satbgradestandard.strgradeguid
AND satbvaluetask.strserialnum =
satbgradestandard.strserialnum
AND satbgradestandard.nitemtype = 1)执行上述语句 satbvaluetask 一定被锁(任何情况,oralce刚启动一个用户也是),程序就没有返回值。程序锁死小弟把 联接串 与 SQL 语句都贴出来, 看是不是这里面的问题!