oracle sql阻塞怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle sql阻塞怎么解决相关的知识,希望对你有一定的参考价值。

使用v$locked_object视图查看阻塞会话的session id,然后通过v$session+v$sql视图查看一下正在执行什么操作。如果可以,使用alter session命令kill掉即可解决阻塞。 参考技术A 那就加索引呗。优化SQL语句呗。 参考技术B --首先查看有哪些锁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.osuserfrom v$session s,v$lock l,dba_objects owhere l.sid = s.sidand l.id1 = o.object_id(+)and s.username is not null --如果发生了锁等待,看是谁锁了表而引起谁的等待--以下的语句可以查询到谁锁了表,而谁在等待。 如果有子节点,则表示有等待发生select /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username user_name, o.owner, o.object_name, o.object_type, s.sid, s.serial#from v$locked_object l,dba_objects o,v$session swhere l.object_id=o.object_idand l.session_id=s.sidorder by o.object_id,xidusn desc --找到引起等待的session,杀掉该session: alter system kill session 'sid,serial#';

sql server2005远程连接oracle11g查询结果中文乱码,怎么解决?

openquery查询oracle的数据,结果中文全部是乱码。sqlserver 的排列规则是Chinese_PRC_CI_AS,oracle11g的字符集是AMERICAN_AMERICA.AL32RTF8。
请问要怎么才能让中文不乱码啊?
打错了,是AMERICAN_AMERICA.AL32UTF8。

远程连接oracle11g查询结果中文乱码是客户端和服务端编码设置不同引起的。
1、检查windows7下面cmd里面sqlplus中oracle server端的字符集。
打开cmd,用sqlplus登录,输入下面SQL查询服务端的字符集。
2、去后台linux查看字符集编码,
(1),查看profile文件
[oracle@powerlong4 ~]$ vim/home/oracle/.bash_profile
export LANG=en_US.gbk
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
(2),查看数据库的userenv
SQL> select userenv(\'language\') fromdual;
USERENV(\'LANGUAGE\')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
改成ZHS16GBK就不会有中文乱码了。
参考技术A 设置过NLS_LANG环境变量了么?

试试 export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

后再查一下?

以上是关于oracle sql阻塞怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

一条查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL

一条查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL

基于MySQL监控利器-Innotop快速定位mysql数据库阻塞事务源头SQL

如何监控和解决SQL Server的阻塞 (当前阻塞)

oracle数据库升级dbua操作阻塞解决方法(解决ORA-32004报错)

weblogic出现线程阻塞