April 10, 2010 at 12:03 pm
Comments posted to this topic are about the item Understanding and Using APPLY (Part 1)
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi
April 10, 2010 at 9:38 pm
I would like to express my sincere thanks to the following people, for their help in producing this article:
Amanda Lawrence
Thank you everyone!
Paul
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi
April 12, 2010 at 12:55 am
Great article Paul - look forward to Part 2. ๐
Atlantis Interactive - SQL Server Tools
My blog[/url]
Why I wrote a sql query analyzer clone
April 12, 2010 at 1:38 am
Thank you, Paul. This is great work. Not only the code & explanation, but equally important: the design of the article. Very easy to read with good illustrations & examples. More of that please! This is the meat of SQL Server Central!
Best Regards,
Chris Bรผttner
April 12, 2010 at 2:53 am
Nice Article Paul. It is very well expalined with example.
I have a doubt, since the UDTF would get executed as many times as the row count of primary resultset (Student's Count). So, would it not affect the performamance. Because this same can be achived by a simple join and that get executed in a set. (I know, you have used this example for illustration purpose. :-)).
For maintenability and readibility, this concept is fine enough.
Well, Please suggest that which is better approach in terms of performance:
Use of UDTF with CROSS APPLY (to a certain extent, which cannot be achived by simple SQL)
or
Putting all tables / view in the final SQL
April 12, 2010 at 3:10 am
mohd.nizamuddin (4/12/2010)
Nice Article Paul. It is very well expalined with example.I have a doubt, since the UDTF would get executed as many times as the row count of primary resultset (Student's Count). So, would it not affect the performamance. Because this same can be achived by a simple join and that get executed in a set. (I know, you have used this example for illustration purpose. :-)).
For maintenability and readibility, this concept is fine enough.
Well, Please suggest that which is better approach in terms of performance:
Use of UDTF with CROSS APPLY (to a certain extent, which cannot be achived by simple SQL)
or Putting all tables / view in the final SQL
Thanks - you raise some interesting questions, which will be fully addressed in part 2, next week ๐
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi
April 12, 2010 at 3:19 am
Paul White NZ (4/12/2010)
mohd.nizamuddin (4/12/2010)
Nice Article Paul. It is very well expalined with example.I have a doubt, since the UDTF would get executed as many times as the row count of primary resultset (Student's Count). So, would it not affect the performamance. Because this same can be achived by a simple join and that get executed in a set. (I know, you have used this example for illustration purpose. :-)).
For maintenability and readibility, this concept is fine enough.
Well, Please suggest that which is better approach in terms of performance:
Use of UDTF with CROSS APPLY (to a certain extent, which cannot be achived by simple SQL)
or Putting all tables / view in the final SQL
Thanks - you raise some interesting questions, which will be fully addressed in part 2, next week ๐
That would be great. Highly appriciated your quick response.
April 12, 2010 at 5:54 am
April 12, 2010 at 6:03 am
Good post Paul, as expected. Clear, concise, and good examples. Looking forward to part 2.
Jack Corbett
Consultant - Straight Path Solutions
Check out these links on how to get faster and more accurate answers:
Forum Etiquette: How to post data/code on a forum to get the best help
Need an Answer? Actually, No ... You Need a Question
April 12, 2010 at 7:01 am
Paul,
Most excellent! This has been bookmarked, and I'm also looking forward to Part II
Wayne
Microsoft Certified Master: SQL Server 2008
Author - SQL Server T-SQL Recipes
April 12, 2010 at 7:08 am
Excellent article, and definitely I learned a few things from this one.
April 12, 2010 at 7:09 am
April 12, 2010 at 7:29 am
Thank you all for the kind reviews (so far): Matt, Christian, Tom, Jack, Wayne, Steve, and Luke. I really appreciate it. :Wow:
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi
April 12, 2010 at 7:51 am
Paul White NZ (4/12/2010)
mohd.nizamuddin (4/12/2010)
Nice Article Paul. It is very well expalined with example.I have a doubt, since the UDTF would get executed as many times as the row count of primary resultset (Student's Count). So, would it not affect the performamance. Because this same can be achived by a simple join and that get executed in a set. (I know, you have used this example for illustration purpose. :-)).
For maintenability and readibility, this concept is fine enough.
Well, Please suggest that which is better approach in terms of performance:
Use of UDTF with CROSS APPLY (to a certain extent, which cannot be achived by simple SQL)
or Putting all tables / view in the final SQL
Thanks - you raise some interesting questions, which will be fully addressed in part 2, next week ๐
My questions are on the same lines. Is it always better to use APPLY than a JOIN?
However I think the 'UDTF would get executed as many times as the row count of primary resultset' and 'simple join' comments are pretty superficial. JOIN is not as simple as it looks is what execution plans tell me. Thanks to some good articles here.
Paul, my main question is why use APPLY instead of a JOIN?
I tried out Query 04, Query 05 and the following query (the one in the article).
SELECT S.student_id,S.[Name],
J.[Name],GS.grade_score
FROM dbo.GradeScore GS
JOIN dbo.Subject J
ON J.subject_id = GS.subject_id
JOIN dbo.Student S
ON S.student_id = GS.student_id
WHERE S.gender = N'M'
ORDER BY
S.student_id ASC,
J.[Name] ASC;
They all showed me the same execution plan. Am I not 'seeing' something?
PS: A little knowledge is very dangerous ๐
I got an error (sniff sniff) when i tried a preview and had to type the whole thing again. I will do a Ctrl + A, Ctrl + C next time before I hit the button.
- arjun
https://sqlroadie.com/
April 12, 2010 at 7:53 am
I would like to add that I am more worried about performance than best practice and maintenance.
- arjun
https://sqlroadie.com/
Viewing 15 posts - 1 through 15 (of 89 total)
You must be logged in to reply to this topic. Login to reply