日期:2014-05-16  浏览次数:20499 次

关于数据库创建视图效率的简单讲解

创建视图的主要目的是为了方便查询数据,而不能提高查询效率,要提高效率只能通过其它的办法优化,比如创建索引之类的。

以下证明上面的说法:

按日查询出平均数据,数据量为58万条

select avg(ave_value) ave_value,to_date((CONCAT(to_char(create_time,'yyyy-mm-dd'),' 00:00:00')),'yyyy-mm-dd hh24:mi:ss')create_time  from PDB_NWD_CPUM_D group by to_char(create_time,'yyyy-mm-dd');

耗时:0.422秒

下面创建一个视图跟上面语法的对应

create view PDB_NWD_CPUM_D_DAY as select avg(ave_value) ave_value,to_date((CONCAT(to_char(create_time,'yyyy-mm-dd'),' 00:00:00')),'yyyy-mm-dd hh24:mi:ss')  create_time from PDB_NWD_CPUM_D group by to_char(create_time,'yyyy-mm-dd');

视图创建完之后我们查询这个视图:

select ave_value,create_time  from PDB_NWD_CPUM_D_DAY;

耗时0.429秒


多运行几遍发现查询效率并没提高。


当然如果针对多张表做视图,将会体现出视图的好处--方便。