索引新建后,是否对正运行中的存储过程生效?执行了个十个超长时间(约计24小时)的存储过程后(里面都是循环计算一批数据),才发现其中有个两百万数据大表没建索引,我现在已立即建了索引,但不知道会不会对在正运行的存储过程生效。因为存储过程是预编译、预执行sql计划,所以对这个问题很奇怪,究竟是否会自动使用新建的存储过程呢。

解决方案 »

  1.   

    在你没有重新做统计的时候,可能会不起作用,如果有怀疑你可以重新编译过程
      

  2.   

    因为存储过程正在运行中,所以没办法重新编译。另外我也不仅仅是怀疑,更是想知道引发这结果的原因。
      

  3.   

    存储过程是已经编译过正在用的语句,系统不会回头再去查看索引的
      

  4.   

    自己试了一下,确实不会再去查看索引了,有什么办法让索引生效吗?