why computed columns slowing down performance all the sudden? Users were able to run reports before 10 am. 
After that same reports became very slow, sometimes users just didn't have patience to wait. 
After some troubleshooting I found the column that was causing the delay. It was computed column that uses function in order to bring the result. 

Approximately at the same time I got another complain about slow running report, that was always working fine. After some troubleshooting I found the columns that was causing a delay: 

where (Amount - PTD) &lt;&gt; 0


And again, the Amount column is computed column. 

So my question is: why all of the sudden computed columns that were always part of the reports started to slow down the performance significantly? 
What could really happen approx after 10 am?
And what is the disadvantage if I make those columns persisted?

Thank you 

--FUNCTION that bring the column:

ALTER FUNCTION [dbo].[CalcInvoiceAmtPTD]
(@SInvNum INT, @entityGuid uniqueIdentifier) RETURNS MONEY
AS
BEGIN
    DECLARE @Amt MONEY

    declare @toplevel uniqueidentifier
    set @toplevel = (select dbo.gettoplevelentity(@entityguid))

    declare @t table 
    (
        Guid uniqueidentifier
    )

    insert into @t select * from dbo.getlinkedentities(@toplevel) where guid is not null
    declare @tbl table (amount money, glacctid int)

    select @amt = isNull(sum(amount), 0) from tblfin_journalpostings jp
        inner join tblfin_journal j on j.transactnum = jp.transactnum 
            and (voiderfor is null and voidedby is null)and j.transdescid &lt;&gt; 'I'
        inner join tblfin_glaccounttypes glt on glt.glacctid = jp.glacctid and glt.accounttype = 'p'
        inner join @t t on t.guid = jp.entityguid
    where invoicenum = @SInvNum

    RETURN ISNULL(@Amt  , 0)
END
I'm going to throw this out there, since no one else has mentioned it.

Having a scalar valued function in a computed column is an awful idea.


Forces ALL queries against the table to run serially (even if you don't select the computed column)
Forces maintenance (Index, CHECKDB) to run serially, even if you're
on Enterprise   
Executes row by row
If used in the WHERE clause, can cause issues with cardinality
estimates


Here are a few blog posts I've written about similar subjects. 

Still Serial After All These Years

Scalar Functions In Computed Columns

Scalar Functions In Check Constraints