直接从表中或从视图中选择SELECT数据有什么区别? 每个人的最佳用途是什么?
答案 0 :(得分:3)
根据Microsoft的说法,如果您在sql server 2000/2005/2008中使用索引视图,则可以获得性能优势。
索引视图可以通过以下方式提高查询性能 1.聚合可以预先计算并存储在索引中,以最大限度地减少查询执行期间的昂贵计算 2.可以预先连接表格并存储结果数据集 3.可以存储联接或聚合的组合
但就像表上的索引一样,视图上的索引会遇到修改开销。因此,只有在运行时速度增加的好处超过更新视图索引所需的时间时,才向视图添加索引。
以下链接提供了有关此内容的更多信息(何时使用内容)。
答案 1 :(得分:1)
在大多数数据库中,它们在功能上是可互换的(无视物化视图,无论如何都是完全不同的。)创建视图有两个常见原因。 1.抽象(和列别名)机制,以及2.用于权限和访问控制。但就效率而言,这不是一个问题。
答案 2 :(得分:1)
这取决于数据库和视图的定义。
将列别名或执行简单计算的简单视图与直接进行查询没有区别。
但是,在某些情况下,视图可能会慢得多。例如:在Oracle中,如果您过多地嵌套视图查询(例如,一个视图使用另一个视图作为表,使用另一个视图等),则可能会创建可怕的性能。
通常,您需要使用特定数据库和相关查询进行测试。
答案 3 :(得分:0)
这样想:
视图只是一个存在于服务器上并由SQL引擎编译的select语句。
通常,视图用于限制/简化表中的结果。
此致 ķ