解决方案 »

  1.   

    请重新Alter视图,等于重新组织视图结构
      

  2.   

    time out 的具体信息发上来看看。
      

  3.   

    这是正常现象。
    假定数据全集有1亿记录,然后你要取其中1条。
    如果视图没有过滤条件,那么它的执行就是取1亿记录。
    通过视图查询:先用视图取1亿记录,再从这1亿记录中取1条,当然会超时了。
    直接用一个SQL查询:如果有合适的索引,从索引中检索出对应的记录号然后取这条记录,很快的。大数据要慎用视图。
      

  4.   


    若基于view的表已有合理的索引,还需要在view上建立索引吗?
      

  5.   

    最终通过更新某个表的统计信息解决了。
    抱歉表述未能完全准确,后来发现直接从视图中复制出来运行“没事”应是种错觉,只不过是不会超时,效率依然很慢。
    查看实际查询计划发现某个节点出现了“waring:columns no statistics xxx...”,实际扫描行数非常诡异。所以按推测更新了其中一个表的统计信息,就一切正常了。