我知道在 SQL Server 中,您可以在视图上创建索引,然后视图保存基础表中的数据。然后就可以查询视图了。但是,为什么我需要使用视图而不是表呢?

有帮助吗?

解决方案

您可能需要使用一个视图,以简化查询。在我们的项目中,共识是使用视图的接口,特别是“报告界面”。

想象一下,你有一个客户表,和经理每天早上要报告与客户的名字,他们的账户余额(或其他)。如果您对表的代码生成报告,您正在创建您的报告,你的表之间有很强的联系,使得后来改变了困难。

在另一方面,如果你的报告击中一个视图,可以随意扭动的数据库;只要认为是相同的报告工作,经理很高兴,你是自由与数据库进行实验。你想客户端的元数据从主客户端表分开?去了,并加入视图中的两个表。你要非规范化客户端的车的信息?没有问题,该视图可以适应...

说实话,这是我的看法,作为一个程序员,但是其他用途,肯定会受到分贝大师发现:)

其他提示

一个表是数据的物理存储位置。

一个视图是其中表总结或分组以使表的基团更容易使用。

的索引视图允许查询中使用的图,并且不需要从基础表获取数据,作为视图已经具有的数据,从而提高了性能。

您也无法达到只表相同的结果,而不会反规范化数据库,从而有可能造成其他问题。

使用索引视图的一个优点是用于命令2个或更多的列,其中所述列是在不同的表的结果。即,具有图是Table 1和Table的结果的排序条件为table1.column1,是table2.column2。然后可以创建在列1的指数,列2,以优化该查询

基本上,使用视图:

  1. 当您在许多表上多次使用相同的复杂查询时。
  2. 当新系统需要读取旧表数据,但不注意更改其感知模式时。

索引视图可以通过创建更具体的索引来提高性能,而无需增加冗余。

一个视图仅仅是已被赋予了名称和存储在数据库中的SELECT语句。视图的主要优点是,一旦它的创建,它就像你想写的任何其他SELECT语句的表。

的视图的SELECT语句可以引用表,其它视图和功能。

可以创建在视图(索引视图)的索引,以改善性能。索引视图是自更新,立即反映改变底层的表。

如果您的索引视图只从一个表中选择列,你也可以同样放在该表和查询表直接,认为只会导致开销为你的数据库的索引。但是,如果你的SELECT语句覆盖多个表与连接等方面比你可以放置一个索引视图上获得的性能提升。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top