日期:2014-05-17  浏览次数:20407 次

请问如果查询要联的表超过三张,是写试图好还是联表查询好?
经常会用到三张以上的表联表查询,而且这个查询还经常用到。
所以请问是使用联表查询好还是使用试图比较好?
如果试图使用过多,会有什么不好的影响没?

------解决方案--------------------
我觉得使用视图的好,正确的使用视图也会提高查询效率的
------解决方案--------------------
视图只是将基表封装起来而已,原则上查询用到的还是基表的索引
除非你给视图创建视图索引,但是这个规则很繁琐,貌似也不是很好维护
个人觉得,除非安全考量,尽量少用视图
------解决方案--------------------
引用:
引用:视图不应该拿来做提高性能的手段,除非是索引视图(2005后才有),单纯关联的性能几乎比视图高
那请问一般什么情况下使用试图更好?
基于安全性,如为了给某类用户只能看某些数据,更具体的例子比如部门经理可以看下面的员工资料,但是不能看薪资。HR可以看员工资料及薪资,老总可以看全部。他们可能都是访问一个表或者同一些表,这时候可以创建3个视图,根据角色来select不同的列和where条件,这样不同角色直接调用视图即可。视图主要是用在这一部分。记住是主要
------解决方案--------------------
引用:
引用:视图不应该拿来做提高性能的手段,除非是索引视图(2005后才有),单纯关联的性能几乎比视图高
那请问一般什么情况下使用试图更好?

视图的主要优点我觉得一是简化查询,二是隐藏基表的表结构,当因为业务逻辑发生表结构或表名变化时,只需要修改视图定义就行了,不需要修改客户端程序
------解决方案--------------------
个人觉得用存储过程要好些 这个比视图的安全性要高些 
 
一般最好不要用视图