October 26, 2011 at 9:07 pm
Comments posted to this topic are about the item Query Plan Execution Order
October 26, 2011 at 9:15 pm
Blew that one as did someone before me.
Learned a lot by reading your references - thanks for those.
October 26, 2011 at 9:48 pm
Looks like I am the first to get it right!
Makes a change.
I am normally the last person to get it wrong.
Nice question, with lots of interesting articles.
October 26, 2011 at 11:45 pm
This might be the toughest QotD.
M&M
October 27, 2011 at 12:28 am
Going to stick my neck out and say that its wrong.
Yes the stream aggregate gets called first... but it hasnt finished. So is the important part which gets called first or which gets finished first? Personally i think its the part that gets finished first thats important (or more precisly the thing that performs its purpose first). I cant say a function has been executed when it hasnt actually done anything.
Could be a language thing though that i put a different meaning into "executes" then everyone else
/T
October 27, 2011 at 12:47 am
tommyh (10/27/2011)
Going to stick my neck out and say that its wrong.Yes the stream aggregate gets called first... but it hasnt finished. So is the important part which gets called first or which gets finished first? Personally i think its the part that gets finished first thats important (or more precisly the thing that performs its purpose first). I cant say a function has been executed when it hasnt actually done anything.
Could be a language thing though that i put a different meaning into "executes" then everyone else
The learning point today was about execution order (hence the title). Query plans are pipelines, and the intention was to highlight something that most people misunderstand about that. I'm sorry the way I phrased it differs from your intuitive understanding of 'executes', if I could give you your two points, I would. That's not to say that I agree with you (I don't) but points are free, and I like people to be happy
October 27, 2011 at 1:13 am
Great question, Paul, and great explanation.
Looks like you tricked most of us (myself included).
-- Gianluca Sartori
October 27, 2011 at 1:30 am
Gianluca Sartori (10/27/2011)
Great question, Paul, and great explanation.Looks like you tricked most of us (myself included).
Thanks, but I want to say that I really really really didn't set out to trick anyone with this. It was intended as a follow-on question to my previous one (Table Access Order[/url]) but the scheduling meant they came much further apart in time than I intended. The formatting also got messed up in the explanation, but hey ho. Hopefully there's enough value in the learning point that I get away with it.
October 27, 2011 at 2:06 am
Great question. I got it wrong but learned something which is a good start to the day.
October 27, 2011 at 2:54 am
Nice one. I got it right - yay! - though I had to spend 20 minutes reading up (sorry work) first, as I was determined to get it right.
I think the setter was quite correct. If he had said which FINISHES executing first that would be a different matter.
October 27, 2011 at 3:15 am
Great question for learning - cheers
And, more importantly, congrats on winning the Webb Ellis, SQL Kiwi!
October 27, 2011 at 4:59 am
Good question, Paul!
I had the correct answer,but only thanks to the fact that I attended SQL Saturday in Portland a few weeks back (just before the PASS Summit). I don't recall who said it, probably either Buck or Rob, but the quote itself will always stick: "Exection plans suck". Refering to the little-known fact that data is not pushed from right to left (as most people usually read plans, myself included), but pulled ("sucked") by the top-left operator from the operator to the right and below it.
October 27, 2011 at 5:38 am
Tough question with good references. I missed it but I learned something today.
http://brittcluff.blogspot.com/
October 27, 2011 at 5:54 am
really, it's a very good question!!!
thanks Paul!!
October 27, 2011 at 6:27 am
tommyh (10/27/2011)
Yes the stream aggregate gets called first... but it hasnt finished. So is the important part which gets called first or which gets finished first? Personally i think its the part that gets finished first thats important (or more precisly the thing that performs its purpose first). I cant say a function has been executed when it hasnt actually done anything.
Got it wrong because I just parroted something I picked up from this site. Moving a little fast this morning.
However, while I have no quibble with the explanation, I think I prefer Tommy's point of view semantically. I tend to think of "Execute" in terms of completion. The example that came to mind was a recursive call. Although the first call starts "executing" first, it can't complete its business until all subsequent calls have completed.
Thanks to SQL Kiwi for the question.
[font="Verdana"]Please don't go. The drones need you. They look up to you.[/font]
Connect to me on LinkedIn
Viewing 15 posts - 1 through 15 (of 103 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy