EXISTS : is used to return a Boolean valueJOIN : returns a whole other tableEXISTS is only used to test if a sub query returns results, and short circuits as soon as it does. JOIN is used to extend a result set by combining it with additional fields from another table to which there is a relation. SO EXISTS is fast and JOIN is slow comparatively. Let see it with an example SET STATISTICS IO ON
SET STATISTICS TIME ON
SELECT * FROM BOOKS WHERE EXISTS
(
SELECT NewSeqCol FROM MYTABLE
)
SELECT * FROM BOOKS
JOIN MYTABLE ON BOOKS.id = MYTABLE.NewSeqCol
above are the result sets returned from both of the queries , as you can see from the elapsed time durations difference is clear.
No comments:
Post a Comment