问题:drop表的索引然后重新建立索引会导致过程失效么?如果会的话为什么?
我在2个数据库进行测试的结果不一致。
在数据库1 drop表A的索引过程没有失效
在数据库2 同样drop表A索引调用该表的过程全部失效,不知道是为什么?
备注:数据库1和数据库2是主机和备机 数据完全一致过程、表完全一致。
求高人解答。

解决方案 »

  1.   

    你drop之前这索引可能丢了,执行的时候报错,就失效了
    你可以下建立这索引,重新确认你的存储过程
      

  2.   

    我drop 表索引前没有过程失效,drop后调用该表的过程就全部都失效了。
    如果说这条索引之前就已经失效,那么过程之前也应该是失效状态。
      

  3.   

    是不是过程里使用hints引用该索引了?
      

  4.   

    那为什么一个库上过程失效了 一个库上过程没有失效呢?
    刚才开会去了 sorry
      

  5.   


    数据库2 里面可能有些了hit之类的强制走索引的select语句,所以你drop掉index后,执行存储过程,就会报错,提示索引不存在的错误。当你重新建好索引后,执行存储过程就不会报错了。
      

  6.   

    数据库1 和数据库2 是主机和备份机所以数据库版本是一致,都是10G
    用户在线系统是数据库1
    我们测试和调试程序是数据库2 但我们在数据库2上进行的调试程序没有出现 删除索引导致过程失效的问题,但在在线系统上出现了这个问题 。
    楼上各位说的 引用hit导致过程失效的情况 为什么在2个数据库操作的结果却不一样呢?