我已将持久计算列添加到表中。
ALTER TABLE guest
ADD FullName AS
dbo.complicatedFunction(ISNULL(FirstName, N'') + ISNULL(LastName, '')) PERSISTED
GO
我还在该字段上添加了一个非聚集索引。
当我从该表中进行选择并将列包含到 where 语句中时,执行需要很长时间。
我尝试直接用表达式替换持久化的列,并且执行所需的时间相同,这使我相信当我尝试从该表中选择某些内容时,会为每一行重新计算 FullName 字段。
如何避免重新计算并让查询使用索引?