|
|
|
SSChampion
        
Group: General Forum Members
Last Login: Yesterday @ 7:18 PM
Points: 10,989,
Visits: 10,532
|
|
|
|
|
|
SSCertifiable
       
Group: General Forum Members
Last Login: Today @ 2:24 AM
Points: 5,235,
Visits: 7,040
|
|
My sole critisicm of this article is that it's much too short.
I can't wait to read the parts three and four!
Hugo Kornelis, SQL Server MVP Visit my SQL Server blog: http://sqlblog.com/blogs/hugo_kornelis
|
|
|
|
|
Forum Newbie
      
Group: General Forum Members
Last Login: Wednesday, January 09, 2013 9:57 AM
Points: 4,
Visits: 79
|
|
Good article Paul, look forward to reading more on it!
I also would like to see more articles like this as I had studied general database engine low-level workings and theories (17 years ago I wrote a thesis on using compressed caches in database engines, never thought it would take this long to see even basic compression used - SQL 2008 being Microsoft's first real go at this lol).
It is great to see how SQL Server applies them, as outside open source code and Microsoft white papers it is rarely discussed now .
|
|
|
|
|
Grasshopper
      
Group: General Forum Members
Last Login: Yesterday @ 7:01 AM
Points: 22,
Visits: 236
|
|
Good article, but there is not enough information.
How are these done?
"The first one is achieved by a rule called JNtoIdxLookup. The second requirement is a correlated loops join - also known as an Apply. The rule needed to transform our query to that form is AppIdxToApp."
"We can remove this Compute Scalar, and the need to compute COUNT(*), by normalising the GROUP BY using a rule called 'NormalizeGbAgg'."
|
|
|
|
|
Grasshopper
      
Group: General Forum Members
Last Login: Tuesday, July 24, 2012 7:41 AM
Points: 10,
Visits: 21
|
|
Do you have before/after timings? Was the query statement unchanged? Did you add an index? It is not clear how the query was improved.
|
|
|
|
|
SSC-Enthusiastic
      
Group: General Forum Members
Last Login: Thursday, April 18, 2013 1:24 AM
Points: 178,
Visits: 261
|
|
Great series, looking forward to the next two instalments.
I feel I must point out this great typo though, made me chuckle:
"1. Convert the naive nested loops join to an index nested loops join "

|
|
|
|
|
SSChampion
        
Group: General Forum Members
Last Login: Yesterday @ 7:18 PM
Points: 10,989,
Visits: 10,532
|
|
bpportman 52825 (9/9/2010) Good article, but there is not enough information. How are these done? That would leave me nothing to say in Parts 3 & 4!
Paul White SQL Server MVP SQLblog.com @SQL_Kiwi
|
|
|
|
|
SSChampion
        
Group: General Forum Members
Last Login: Yesterday @ 7:18 PM
Points: 10,989,
Visits: 10,532
|
|
aeyates (9/9/2010) Do you have before/after timings? No.
Was the query statement unchanged? Yes.
Did you add an index? No.
It is not clear how the query was improved. The series is about how the query optimizer works internally. I am showing some of the plan alternatives it considers on the way to finding the final plan. Part 3 and Part 4 of this series will reveal the magic.
Paul White SQL Server MVP SQLblog.com @SQL_Kiwi
|
|
|
|
|
SSChampion
        
Group: General Forum Members
Last Login: Yesterday @ 7:18 PM
Points: 10,989,
Visits: 10,532
|
|
Rick-153145 (9/9/2010) I feel I must point out this great typo though, made me chuckle: "1. Convert the naive nested loops join to an index nested loops join " I still can't see a typo there, Rick.
Paul White SQL Server MVP SQLblog.com @SQL_Kiwi
|
|
|
|
|
SSChampion
        
Group: General Forum Members
Last Login: Yesterday @ 7:18 PM
Points: 10,989,
Visits: 10,532
|
|
Hugo Kornelis (9/9/2010) My sole critisicm of this article is that it's much too short. I can't wait to read the parts three and four! Thank you, Hugo.
Paul White SQL Server MVP SQLblog.com @SQL_Kiwi
|
|
|
|