SQL Server 2005 计算列是持久化的。

30

我在一张表中有一些计算列,想知道是否应将“Is Persisted”设置为true。它有什么优点?有没有缺点?“Is Persisted”是什么意思?

我有一些计算列在表中,并需要知道是否应该将 Is Persisted 设置为 true。这样做的好处是什么?有没有不利之处?什么是“Is Persisted”的意思?

2个回答

45

"Persisted"在这个上下文中的意思是“物理存储”。

这意味着计算出来的值在插入(和更新)时只需计算一次并存储在磁盘上,因此不必在每次选择时重新计算。

Persisted还会导致在插入和更新时存在性能损失,因为必须计算列,但将增加后续选择查询的性能。

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

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


6

其他回答中未提到的一件事是:计算列必须是PERSISTED才能从FOREIGN KEY中使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接