Sql server 2005 如何使用视图和索引来提高性能
我正在处理一些具有基于时态的行并且存在于不同数据库中的表。其思想是编写存储过程来获取并最终处理数据,这反过来又会利用许多连接,从而产生大量数据。然后我会执行某种聚合逻辑来获得所需的数据 这样的存储可能需要使用循环等,速度会非常慢 我是否可以使用视图创建一个表,该表已经是一个仅由所需行(从联接和聚合中获得)组成的短列表表。我在这里缺少一些基本知识: 1.视图是否仅在运行时获取数据?如果有,我如何使用它们来提高性能。 2.我可以使用索引来提高这种视图的性能吗? 3.游标比循环快吗?我知道我可以使用某种查询来避免循环——但是假设我必须使用循环,那么游标是更好的选择吗Sql server 2005 如何使用视图和索引来提高性能,sql-server-2005,Sql Server 2005,我正在处理一些具有基于时态的行并且存在于不同数据库中的表。其思想是编写存储过程来获取并最终处理数据,这反过来又会利用许多连接,从而产生大量数据。然后我会执行某种聚合逻辑来获得所需的数据 这样的存储可能需要使用循环等,速度会非常慢 我是否可以使用视图创建一个表,该表已经是一个仅由所需行(从联接和聚合中获得)组成的短列表表。我在这里缺少一些基本知识: 1.视图是否仅在运行时获取数据?如果有,我如何使用它们来提高性能。 2.我可以使用索引来提高这种视图的性能吗? 3.游标比循环快吗?我知道我可以使用某
谢谢…索引视图可以提高性能,但是在线阅读有关它们的书籍,因为对哪些类型的视图可以索引有很多限制。它们确实有助于聚合,但前提是您可以满足索引视图必须满足的其他条件。调用其他视图的视图可能会大大降低性能,不要使用它们 如果无法使用索引视图解决问题,为了提高聚合性能,一种策略是将聚合值存储在一个表中,该表在基础数据发生更改时通过触发器进行更新。这样,每次数据更改只进行一次计算,而不是在select查询中重复多次。触发器必须仔细编写并处理多个记录插入/更新/删除。如果聚合可能与实时稍微不同步,则可以通过作业而不是触发器来完成 应用程序代码中很少需要游标和循环。它们的实际用途通常用于数据库管理任务。为了帮助您了解比循环更好的使用方法,请阅读以下内容:
游标和循环同样糟糕,为什么您认为需要循环?