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

时间:2009-02-22 21:37:28

标签: database select

直接从表中或从视图中选择SELECT数据有什么区别? 每个人的最佳用途是什么?

4 个答案:

答案 0 :(得分:3)

根据Microsoft的说法,如果您在sql server 2000/2005/2008中使用索引视图,则可以获得性能优势。

索引视图可以通过以下方式提高查询性能 1.聚合可以预先计算并存储在索引中,以最大限度地减少查询执行期间的昂贵计算 2.可以预先连接表格并存储结果数据集 3.可以存储联接或聚合的组合

但就像表上的索引一样,视图上的索引会遇到修改开销。因此,只有在运行时速度增加的好处超过更新视图索引所需的时间时,才向视图添加索引。

以下链接提供了有关此内容的更多信息(何时使用内容)。

  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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

但是,在某些情况下,视图可能会慢得多。例如:在Oracle中,如果您过多地嵌套视图查询(例如,一个视图使用另一个视图作为表,使用另一个视图等),则可能会创建可怕的性能。

通常,您需要使用特定数据库和相关查询进行测试。

答案 3 :(得分:0)

这样想:

视图只是一个存在于服务器上并由SQL引擎编译的select语句。

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

此致 ķ