sql server - SQL Function in column running slow -
i have computed column
(function) causing 1 of tables extremely slow (its output column in table. thought might logical statements in function. commented out , returned string called 'test'
. still caused table slow. believe select
statement slowing down function. when comment out select statement, cherry. think not using functions in correct manner.
function [dbo].[pend_type](@suspense_id int, @loan_id nvarchar(10),@suspense_date datetime, @investor nvarchar(10)) returns nvarchar(20) begin declare @closing_date datetime, @paid_date datetime declare @pendtype nvarchar(20) --this issue!!!! select @closing_date = date_closing, @paid_date = date_paid table loan_id = @loan_id set @pendtype = 'test' --commented out logic return @pendtype end
update:
i have computed column
similar , column in same table. 1 runs fast. see difference in why be?
declare @yorn nvarchar(1) if((select count(suspense_id) table suspense_id = @suspenseid) = 0) set @yorn = 'n' else set @yorn = 'y' return @yorn
you have isolated performance problem in select
statement:
select top 1 @closing_date = date_closing, @paid_date = date_paid table loan_id = @loan_id;
to make run faster, create composite index on table(load_id, date_closing, date_paid)
.
by way, using top
no order by
. when multiple rows match, can 1 of them back. normally, top
used order by
.
edit:
you can create index issuing following command:
create index idx_table_load_closing_paid on table(load_id, date_closing, date_paid);
Comments
Post a Comment