Basically I have two scalar UDFs that output the same data, one that uses a cursor and one that uses a recursive CTE. I want to determine which one should be used and discard the other; I'd prefer to make this decision based on actual performance numbers. I'm also curious how much of a difference there is between the two.

How can I benchmark the performance of these UDFs to figure out which one is faster?

  • 'Good/Best' are considered to be subjective questions, that is why I re-framed your question.
    – CoderHawk
    Jan 20, 2011 at 9:09
  • In this particular case, its not about the UDF; whether CTE or Cursor causing the performance. You are free to post both UDF's definition here, so that experts can look at it and suggest work arounds.
    – CoderHawk
    Jan 20, 2011 at 9:11
  • @Sandy, posting the udf definitions sounds like it would lead to qualitative analysis, which is definitely not what I'm asking for. I want to base this decision on the cold hard truth of raw performance numbers only. Jan 20, 2011 at 15:35

1 Answer 1


The SQL Profiler, execution plan, IO/Cpu statistics are your best friend at checking the performance of your code. You will see if there are any differences in performance between the 2 versions of functions.

In this question - Tuning exercises - you can find some basic and advanced references about tuning.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.