6

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

4

4 回答 4

4

根据微软的说法,如果您在 sql server 2000/2005/2008 中使用索引视图,则会有性能优势。

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

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

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

  1. SQL Server 2000/2005 索引视图性能调优和优化技巧
  2. 使用 SQL Server 2000 索引视图提高性能
  3. 通过在 SQL 中使用索引视图来查看性能提升
于 2009-02-22T22:06:50.117 回答
1

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

于 2009-02-22T21:40:38.167 回答
1

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

为列设置别名或执行简单计算的简单视图与直接进行查询没有什么不同。

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

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

于 2009-02-22T21:43:01.843 回答
0

这样想:

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

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

问候 K

于 2009-02-22T21:42:16.417 回答