代码之家  ›  专栏  ›  技术社区  ›  ecleel

直接从表中选择与从视图中选择的区别

  •  5
  • ecleel  · 技术社区  · 17 年前

    直接从表中或从视图中选择数据有什么区别?
    对每个人来说,最好的用途是什么?

    4 回复  |  直到 13 年前
        1
  •  3
  •   Community Mohan Dere    11 年前

    根据微软的说法,如果你使用 索引的 SQL Server 2000/2005/2008中的视图。

    索引视图可以通过以下方式提高查询性能
    1。聚合可以预先计算并存储在索引中,以便在查询执行期间最小化昂贵的计算。
    2。可以预先联接表并存储结果数据集。
    三。可以存储联接或聚合的组合

    但和表上的索引一样,视图上的索引也会经历修改开销。因此,只有当运行速度提高的好处超过了更新视图索引所需的时间时,才向视图添加索引。

    下面的链接提供了更多关于这个的信息(关于什么时候使用什么)。

    1. SQL Server 2000/2005 Indexed View Performance Tuning and Optimization Tips .
    2. Improving Performance with SQL Server 2000 Indexed View .
    3. See performance gains by using indexed views in SQL .
        2
  •  1
  •   dkretz    17 年前

    在大多数数据库中,它们在功能上是可互换的(忽略物化视图,无论如何这是完全不同的东西),创建视图有两个常见的原因。1。抽象(和列别名)机制,以及2。用于权限和访问控制。但至于效率,这不是问题。

        3
  •  1
  •   Jason Cohen    17 年前

    它取决于数据库和视图的定义。

    对列进行别名或执行简单计算的简单视图与直接进行查询没有区别。

    但是,在某些情况下,视图可能会慢得多。例如:在Oracle中,如果嵌套视图查询太多(例如,一个视图使用另一个视图作为表,而另一个视图使用另一个视图,等等),则可能会产生糟糕的性能。

    一般来说,您需要使用相关的特定数据库和查询进行测试。

        4
  •  0
  •   Khb    17 年前

    这样想:

    视图只是一个select语句,它位于服务器上,由SQL引擎编译。

    通常,视图用于限制/简化表中的结果。

    当做 K