场景:这几天上班,手机里经常收到cursor pin s on x 的等待事件;看了下这些会话v$session.blocking_session,再根据这个blocking_session查询到此会话发现:
此会话语句大概格式为:
insert into t1@dblink (a1,a2,a3...) values(xx,xx,xxx...);
从直接感觉是这个游标解析时间过长,导致其它游标在解析需要获得X锁时一直处于等待状态;
查了下资料说DBLINK很有可能导致这个问题;
迅速的从其中一个节点进行测试;
select sysdate from dual@dblink;
结果还是比较快的;
正当犹豫时候,发现在另一个节点竟然有种卡住感觉,这奇了;
通过测试基本推断为网络端口开放问题导致网络不通,而SQL在解析时导致因为一直在等待直到报超时的这段时间都占有X锁,
导致对于同一个SQL的其它会话属在cursor pin s on x的等待;
=》交给网络部门解决;后续再反馈具体处理方案;