SQL Server 2005计算列保持不变

hil*_*ary 26 sql-server-2005 calculated-columns

我在表中有一些计算列,需要知道我是否应该将Is Persisted设置为true.有什么好处?有什么缺点吗?"坚持"是什么意思?

Man*_*anu 43

"持久"意味着在这种情况下"物理存储".

这意味着计算值在插入(和更新)时计算一次并存储在光盘上,因此不必在每次选择时再次计算.

持久化还会导致插入和更新时的性能损失,因为必须计算列,但会提高后续选择查询的性能.

因此,它取决于您的使用模式,遵循哪种方法:如果您不经常更新,但经常查询,则应设置persisted = true.

如果您经常更新,或者您不关心检索性能,则应考虑设置persisted = false


Bra*_*vic 5

其他答案中没有提到的另一件事:计算列必须被持久化才能从外键中使用。