我有一个从视图中获取数据的Windows服务,并且每个视图都定义了一个表,其中填充了数据。
视图的制作使得视图中的视图可能会深达三级。
您能否提供一些提示,了解如何提高最外层视图的效果?
或如何提高整体表现。
感谢。
编辑:我也听说过在视图中使用视图不是很好的策略,这是真的吗?
答案 0 :(得分:2)
整体表现不受观点结构的影响
<强>除非强>
如果您在内部使用某些聚合处理(或者不仅仅选择字段)或强制查询优化器 NOT 来展开视图。
视图内部观点策略如何 - 品味重要,我认为它并不美观,但我不能将其命名为策略8 - )
关于提高整体性能的几句话 - 在一条消息中回答它是 MOST 复杂的区域,我认为你应该开始调整你的数据库以获得性能获得而不是特别关注他人内部或其他任何地方的观点或观点。
答案 1 :(得分:0)
我认为这里解释得非常好View Performance Question
SQL Server在运行时解析总查询,因此查询计划 就像你写了连接并选择了你想要的列。如果 视图仅包含适合您的查询的连接, 性能应该不比编写select语句差。 如果视图具有不适合您的查询的联接 运行时,可能会导致性能问题。
此外,SQL Server花了一些时间“查看视图”(例如从系统表中选择数据),因此视图的执行时间将比同一查询略大,尽管它们的执行计划将是相同的。