2010-09-03 71 views
3

创建视图有什么不利影响,特别是数据库中的大视图(50列)?SQL查看问题

回答

1

从表现的角度来看,我认为本身并没有真正的负面影响。如果底层查询效率低下并且可能导致不希望的锁定,那么该视图将继承这些问题,尽管有些缓解的原因是它比任意语句更有可能被缓存。我会说负面影响的风险在于,通过创建视图并抽象查询的复杂性,您可能会冒着被使用的风险,而没有深入了解底层查询的特征。然后在积极的一面,视图也开辟了一些不同的优化可能性(索引视图等),并且有时能够解规格化一组数据可以显着减少编写冗余查询的需要。

因此,与大多数工具一样,它们是帮助还是伤害掌握在实施者手中。

1

取决于来自50个内联表的1列或来自1个表的50列。
说实话,要么没有问题,只要你没有使用大量的标量函数。

想想吧,这是一个非常主观的问题。粘贴一些代码;)

+0

嗯,我没有带创建的视图还,但基本上我有一个表的XML列,我会解析出大量的数据变成了50 +列视图 – mint 2010-09-03 15:23:53

0

根据我的经验,视图为您提供与直接查询物理表格完全相同的性能。

0

如果它是一个索引视图,它将占用您的数据库中更多的空间,并减慢对基表中记录的更新。

1

视图上SELECT(非指数)确实是这样的:

SELECT Xyz FROM 
(
    SELECT Abc FROM yourbigtable 
) 

因此,检查要实现第一个我想说的查询的性能。

尝试先解决无视图的问题,然后再简化。

迈克