What exactly does the scan operator do ? I was trying to profile a query and saw that the scan operator was taking a lot of time. Is scanning simply reading from the disk ? Or does it do something else as well ?
The Scan operator evaluates predicates and reads data from disk. It could be slow because of an unoptimized projection. Expensive predicates (regular expressions, date/time transformations, LIKE, etc ... ) will show up as high "execution time (us)".
One more quick question : What exactly do the opeartors NetworkSend and NetworkRecv messages mean then ? What exactly is the difference between these operators and the Scan operator ?
Scan operator is reading the projection and evaluating predicates. NetworkSend and NetworkRecv are moving data across the network. For example if you are doing a join and the projections aren't segmented on the join keys. Or a GROUP BY where the data isn't segmented by the groups.
Thanks Sharon for the clarification.