当我执行以下声明时,每隔一段时间:
alter session set skip_unusable_indexes=true;
我收到以下错误:
ORA-03135: connection lost contact
ORA-02063: preceding line from my_dblink
答案 0 :(得分:0)
1)跳过索引与我的dblink有什么关系?
没有任何关系。请详细说明您是如何解决问题的。是 你登录sqlplus,一旦改变会话,你的 数据库链接断开连接?
2)如何检测有问题的索引?
select STATUS,index_name,table_name from user_indexes where status='UNUSABLE';
select STATUS,index_name,table_name from user_indexes where status!='VALID' and status!='N/A';
3)如何将上述语句的范围仅限于我的本地索引?
我相信你的意思是说连接数据库上的索引而不是 在DB链接数据库上。你不能做这个。这是会议或 系统设置。
答案 1 :(得分:0)
我怀疑这是一个错误,或者至少是一个未实现的功能。
当您将会话设置为跳过不可用的索引时,您将修改查询优化器/解析器行为,并且我怀疑此修改不能被推送"到已建立连接的远程实例。
我还怀疑,如果可以避免这个问题,那么避免这个问题的关键是在引用任何数据库链接之前改变会话,但即便如此,如果远程数据库没有实现修改,我也不会感到惊讶,因为它实际上是一个不同的会议。