SQL Server使用从函数返回的数据而不是使用join

时间:2014-12-26 20:40:21

标签: sql-server performance function join

我读过如果我使用函数返回一些数据而不是使用连接来增强性能但是,我注意到性能变得比使用无函数的连接更差,我在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

0 个答案:

没有答案