近来遇到这样一个问题,我建立了一个拥有8个基础表和一个视图(这个视图是由两个字段完全相同的表直接累加合并的)的视图,这个大视图里拥有14万左右条数据,我测试了一下,直接select * from 此大视图 执行需要40秒左右(额滴神啊)。这仅仅是查询,而我要做的操作是从这么多数据中选出插入时间在某个时间之后的数据,然后将选出的数据写入到另一个表中,这样一系列操作结束之后,大概需要1分半,这个时间也忒长了吧。而且有时候在那个时间之后没有插入数据,也就是不需要转移数据,可它仍然得执行一分钟左右,这也忒坑爹了呀!各位路过的大神,帮小弟解决一下吧,我是真无语了!sql 视图 效率低 提高 多表建立
普通视图就是一句SQL代码而已,调用的时候也是去执行这句代码生成结果集返回给你而已。你还不如直接对表进行关联查询。
---把执行计划分析下,看哪个执行操作开销cost最大,然后通过索引优化之,以cost最小去获取数据
---如果优化过了,可以给视图加上索引,索引视图能够提升性能
回复请引用,谢谢
另一点,将子视图里面的SQL语句放到主视图中,据说,视图套视图,索引不能正常使用。