在SQL中,使用多个视图而不是单个视图有什么好处?

时间:2012-01-25 22:02:54

标签: sql-server-2008 view

我目前正在制作一个视图来替换我当前的存储过程,并想知道创建多个视图是否有任何好处,其中fetch必须加入不同的视图,而不是fetch没有的单个视图使用任何连接。

4 个答案:

答案 0 :(得分:1)

我能想象的唯一好处是,如果不同的观点具有独立的价值。换句话说,它们可以在其他地方自己有用吗?如果没有,只需创建一个视图。

答案 1 :(得分:1)

除非您向视图添加索引(从而实现它),否则它确实没有区别,因为查询分析器会对它们进行相同的处理。因此,您应该使用最适合您特定应用的任何内容(即使这只是在维护性或可读性方面)。

答案 2 :(得分:1)

当您选择谁可以查看内容时(如果出于安全目的使用视图),多个视图将允许您更精细。基本上你可以说组A只能看到视图A中的数据,组B只能看到视图B中的数据,依此类推。

如果您使用索引视图来提高性能,我会坚持使用一个为您执行连接的视图。由于这些数据将被保留,因此可以节省执行连接的成本。

答案 3 :(得分:1)

我对此有两点看法

  1. 假设在您的应用程序中,有一些可重用的东西已经存储在proc中,并且可以在另一个存储过程中重复使用。因此,您可以在视图中移动该部分并在两个存储过程中调用视图,然后您可以过滤到所需的结果。

  2. 不必要地使用视图可能会导致性能问题。因为视图不接受输入参数所以它将根据您的连接选择所有匹配的行内/左