Oracle 跳过不可用的索引会导致dblink错误

Oracle 跳过不可用的索引会导致dblink错误,oracle,oracle10g,dblink,Oracle,Oracle10g,Dblink,每当我执行以下语句时: alter session set skip_unusable_indexes=true; 我得到以下错误: ORA-03135: connection lost contact ORA-02063: preceding line from my_dblink 跳过索引与我的dblink有什么关系 如何检测有问题的索引 如何将上述语句的范围仅限于本地索引 1)跳过索引与我的dblink有什么关系 这没有关系。请详细说明你是如何得到这个问题的。是 您已经登录到sql

每当我执行以下语句时:

alter session set skip_unusable_indexes=true;
我得到以下错误:

ORA-03135: connection lost contact
ORA-02063: preceding line from my_dblink

  • 跳过索引与我的dblink有什么关系
  • 如何检测有问题的索引
  • 如何将上述语句的范围仅限于本地索引
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) 如何将上述语句的范围仅限于本地索引

我相信你的意思是指连接数据库上的索引,而不是 在数据库链接数据库上。你不能这样做。这是一个会话或 系统设置


我怀疑这是一个bug,或者至少是一个未实现的特性

当您将会话设置为跳过不可用的索引时,您正在修改查询优化程序/解析器行为,我怀疑此修改无法“推送”到您已建立连接的远程实例

我还怀疑,如果可以避免这个问题,那么避免这个问题的关键是在引用任何数据库链接之前修改会话,但即使这样,如果远程数据库没有实现修改,我也不会感到惊讶,因为它实际上是一个不同的会话