There is only one kind of execution plan within SQL Server. I’ve said this several times on this blog. Now, I’d like you to go and read this excellent blog post by Hugo Kornelis. Hugo, Erin Stellato and I are working with Microsoft to hopefully, at long last, make this issue clear.
In the grand scheme of life, like Shakespeare’s rose, the name we use for execution plans doesn’t really matter. However, the fact is, language really does matter. Clarity is so important in communications, of any kind. When we try to teach execution plans, the confusion caused by the old naming standards is one of the first things we have to spend time getting people to un-learn.
I fully support this newly proposed naming standard:
Execution Plan
Execution Plan Plus Runtime Metrics (“Exec Plan Plus” for short)
Execution Plan With Live Statistics (“Live Exec Plan” for short)
These are the clearest names we could arrive at that accurately describe what execution plans are and why you may see some differences between plans, depending on when and where you source them. And yes, Exec Plan Plus sounds like an execution plan on steroids, and frankly I find that funny and accurate.
Please, go here now and vote for this name change so we can get this worked directly into the Microsoft tools and end the confusion the old names have caused.
If you have questions or concerns, I’d love to hear them. If you don’t leave them on Hugo’s blog, leave them here. We’re interested in what people think.
I think this misconception stems from oracle DBAs back in the day of oracle 9i – I seem to remember a particularly obnoxious Oracle DBA (who loved to tell me SQL Server was a toy database and that I should grow up and be a big boy) – he kept going on about cost based plans vs cardinality based plans.
And that might be it. Regardless, the whole estimated/actual has got to go. I’m more than willing to discuss that the plan that Hugo, Erin and I came up with is wrong, but the goal is 100% correct. We need a clear set of terms on this in order to eliminate the confusion.
What about troubleshooting the never-ending query?
Isn’t that what the Live Execution Plan is for?
Just as a side-bar to that particularly obnoxious Oracle DBA… Back in the days when I was on the ‘real steel’ and maintaining DB2 systems, I used to remind the Oracle DBAs that they were the ones playing with toys.
THAT was fun! 😀
After we ‘solve’ this problem lets agree that ‘parameter sniffing’ tends to be a negative connotation and use ‘parameter sensitivity’ instead.
Happy to volunteer for that war, right after we win this one.
[…] don’t agree that the proposed names offer the clarity that Grant Fritchey claims. “Estimated Execution Plan”, “Runtime Execution Plan”, and “Live […]
The link has an invalid cert, can’t read the blog you linked to 🙁
Details
Error Code: DLG_FLAGS_INVALID_CA
NET::ERR_CERT_AUTHORITY_INVALID
Odd. I’m sorry. It’s working for me. I’m not sure.