视图性能增益是否仍然与现代RDBMS相关

时间:2015-08-26 14:27:04

标签: mysql sql-server view database-performance

毫无疑问,写SELECT * FROM viewCostumerAddressSELECT c.id,c.name,a.id,a.fullAddress FROM customer c JOIN address a on a.id_costumer=c.id ORDER BY a.id,c.Priority更简单直观,但是当一群人告诉你“视图的表现更好”而你的测试没有显示出这样的收益你做了什么? 我所进行的所有测试都使用相同的SQL Server 2014.数据集有大约2kk客户端和2.5kk地址。在任何情况下,服务器内存消耗都超过60%。冷查询测试始终是一个完整的服务重启,以“强制清理”任何预编译查询和任何缓存的信息。热查询的结果仅在每次查询/视图达到200次后记录,过滤尽可能多的不同值。所有测试均在专用的非虚拟服务器(裸机)上进行1000次 然而,对于热查询,最终结果的变化小于1%(0.971%),对于冷查询,最终结果几乎为0(0.0024%)。

面对这些结果,我开始怀疑在现代RDBMS世界和“对象关系映射器”中,旧的性能提升声明是否仍然有理由直接从视图而不是表中查询数据?

PS:请尽量在答案中尽可能科学,提供测试方法(如果是这样的话)和/或科学论文,或者在报告你的事件时尽可能具体和彻底强烈的>目睹。

0 个答案:

没有答案