我读过如果我使用函数返回一些数据而不是使用连接来增强性能但是,我注意到性能变得比使用无函数的连接更差,我在pubs数据库上尝试了这个例子
http://www.microsoft.com/en-us/download/confirmation.aspx?id=23654
create function Get_autehr_Name (@author_id varchar(11))
returns varchar(20)
as
begin
return ( select au_fname+' '+au_lname as Auther_Name
from authors where @author_id = au_id
)
end
然后我在这个查询中使用了这个函数
select
title , dbo.Get_autehr_Name(au_id)
from
titles t
inner join
titleauthor ta on t.title_id = ta.title_id
不使用函数的普通查询是
select
title, aut.au_fname + ' ' + aut.au_lname
from
titles t
inner join
titleauthor ta on t.title_id = ta.title_id
inner join
authors aut on aut.au_id = ta.au_id