Two radically different queries against 4 mil records execute in the same time - one uses brute force.
Posted
by
IanC
on Stack Overflow
See other posts from Stack Overflow
or by IanC
Published on 2011-01-01T18:50:58Z
Indexed on
2011/01/01
18:53 UTC
Read the original article
Hit count: 348
I'm using SQL Server 2008. I have a table with over 3 million records, which is related to another table with a million records.
I have spent a few days experimenting with different ways of querying these tables. I have it down to two radically different queries, both of which take 6s to execute on my laptop.
The first query uses a brute force method of evaluating possibly likely matches, and removes incorrect matches via aggregate summation calculations.
The second gets all possibly likely matches, then removes incorrect matches via an EXCEPT query that uses two dedicated indexes to find the low and high mismatches.
Logically, one would expect the brute force to be slow and the indexes one to be fast. Not so. And I have experimented heavily with indexes until I got the best speed.
Further, the brute force query doesn't require as many indexes, which means that technically it would yield better overall system performance.
Below are the two execution plans. If you can't see them, please let me know and I'll re-post then in landscape orientation / mail them to you.
Brute-force query:

Index-based exception query:

My question is, based on the execution plans, which one look more efficient? I realize that thing may change as my data grows.
© Stack Overflow or respective owner