本文共 856 字,大约阅读时间需要 2 分钟。
远程数据库中分区表:test 安装city_code,fee_date分区,表的分区索引列为 user_id,city_code,fee_date
dblink名字:a2b
本地数据库执行的语句为: select sum(fee) from where user_id = 2344 and city_code = 'aaa' and fee_date = 'xxxxxx';
前段时间遇到了一个奇怪的问题,以前通过dblink访问一个分区表,可以很快的返回数据,这段时间却无法正常返回,查询等待事件为:SQL*Net more data from dblink。而在远程数据库中的等待事件为:db file sequential read,并且正在执行的语句变成了select * from test。
通过在本地数据库及远程数据中建立过程来进行trace:
CREATE OR REPLACE PROCEDURE settrace
as
c1 integer;
r1 integer;
BEGIN
c1:=dbms_sql.open_cursor;
dbms_sql.parse(c1,'alter session set timed_statistics=true', dbms_sql.v7);
r1:=dbms_sql.execute(c1);
dbms_sql.parse(c1,'alter session set events ''10046 trace name context forever, level 12''', dbms_sql.v7);
r1:=dbms_sql.execute(c1);
END;
/
/* Perform. the trace */
connect exec settrace
exec
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/51305/viewspace-628739/,如需转载,请注明出处,否则将追究法律责任。
转载地址:https://blog.csdn.net/weixin_33758343/article/details/116438345 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!