1.在SQL SERVER里创建很多个视图,然后基于这很多个视图创建一个最终显示结果的视图
2.创建一个存储过程,内容只有一句select * from 最后那个视图名字请问这样做有效果吗,速度会提高吗,SQL SERVER会把涉及到的所有视图都编译和优化在存储过程里吗?

解决方案 »

  1.   

    还有把SELECT * 换成SELECT 具体的字段名 对提高效率也有帮助的
      

  2.   


    普通视图只是一个sql语句块,不具备物理架构
    多个视图join操作,最好的好能就是性能不减罢了,而根本不可能有所提升。如果你的数据不需要实时同步显示,则可以再建一个表,定时把你视图结果数据插入到这个表里,然后从这个表里查询
    如果你的数据需要实时同步显示,那么可以看是否满足索引视图的条件,将其转变成物理架构,以提高性能
    如果说连索引视图的条件也不能满足,那么你最好也不要用视图join,而是重新写一个新的视图,以免多个视图查询造成的表冗余查询。
      

  3.   

    如果是SQL 2005可以使用引时表,它的作用和临时表的作用相同,只是不用重新建立一张新表