sql server - Does Persisted Computed Column need to update all rows or just affected rows? -
in stackoverflow article, understand persist mean , advantages , disadvantages. however, tried research deeper cannot find "update" one.
here scenario (tl;dr version below): have order table , orderdetail table, in diagram:

the orderdetail.subtotal computed column, simple fomula: ([price]*[quantity])
the order.total computed column, formula: ([dbo].[calculateordertotal]([id])), , here function:
alter function [dbo].[calculateordertotal] ( @orderid int ) returns int begin declare @result int; select @result = sum(od.subtotal) orderdetail od od.orderid = @orderid; return @result; end tl;dr: order , orderdetail updated, inserting. need query usually, though not inserting. if check subtotal , total persist, since of operations won't affect subtotal field of row, sql server know database need update affected record, or have recompute record of order table? or bad?
p.s: using sql server 2008 in case matters.
computed columns calculated when selected.
persisted columns calculated when expressions calculated changed.
select performance suggest using persist, storage space not use persist, since "regular" computed columns not stored in database.
Comments
Post a Comment