• Toreador (6/24/2011)


    I wonder which of the following (if either) is more efficient:

    select @a = 1 where @b-2 = 0

    or

    if @b-2 = 0 set @a = 1

    "if" runs better

    declare @d datetime

    ,@a int

    ,@b int

    ,@i int

    set @d = getdate()

    set @i = 0

    while @i < 1000000

    begin

    if @b-2 = 0 set @a = 1

    set @i = @i + 1

    end

    print datediff(millisecond,@d,getdate())

    set @d = getdate()

    set @i = 0

    while @i < 1000000

    begin

    select @a = 1 where @b-2 = 0

    set @i = @i + 1

    end

    print datediff(millisecond,@d,getdate())