一个视图中包含多个视图和多个表,在提取数据的时候非常慢,里面的视图和表已经不能再优化。请问还有什么好的方法啊,高手指点,不惜发言啊

解决方案 »

  1.   

    视图中还包含多个视图,是不是可以考虑分开查询,比如用临时表。
    你说不能在优化,那where中的条件是否索引。
      

  2.   

    我相信合理的join的话,直接查询实体表是最快的,因为视图往往用不了where条件,所以不性能必然大打折扣。建议拆成实体表,速度如无意外快很多倍。当然,拆的过程可能会很痛苦
      

  3.   

    SQL SERVER中有一个索引视图是把索引的数据真实存储,但是一般对汇总性能好,不知道是不适合你(要考虑到索引视图的负面影响,因为数据的更改需要在视图中做相应的更改)。 
    过索引视图提高的性能 使用索引来提高查询性能并不是什么新观念,不过,索引视图还具有使用标准索引不能获得的其它性能优点。索引视图能够在以下方面提高查询性能: ● 能够预先计算聚合并将其存储在索引中,从而最大限度地减少在执行查询期间进行成本很高的计算。 ● 能够预先联接表并存储生成的数据集。 ● 能够存储联接或聚合的组合。