如果我在表中包含计算列,是否会给它带来性能负担?
举个例子,如果我定义了如下表:
CREATE TABLE users(
givenname …,
familyname …,
fullname AS givenname+' '+familyname
);
每次我从查询中SELECT
,它是否会重新计算?
如果计算列是PERSISTED
,这是否有帮助?
如果我在表中包含计算列,是否会给它带来性能负担?
举个例子,如果我定义了如下表:
CREATE TABLE users(
givenname …,
familyname …,
fullname AS givenname+' '+familyname
);
每次我从查询中SELECT
,它是否会重新计算?
如果计算列是PERSISTED
,这是否有帮助?
select * ...
的(又一个)好理由 - 如果您针对 users
表的查询没有引用 fullname
列,则不会执行任何计算。persisted
折衷(计算与存储)是否对此产生影响。如果计算列是PERSISTED,选择数据时就不会有性能问题(但插入数据会有)。
是的,每次选择数据时都会重新计算。