A simple explanation to your question is the a logical abstraction. What is faster?
1. Parallel Execution
- Analyse query
- Determine which index to use
- Split the query into parallel reads
- Consolidate query results
- Present consolidated data
2. Serial Execution
- Analyse query
- Start retrieving data (serial)
- Present data
Your Queries
A simple SELECT <column> FROM <table>;
will be faster and the most cost-effective with a serial execution. It's already buffering data to the client before the second option has even started splitting the query into parallel threads/tasks.
However, a SELECT MAX(<column>) FROM <table>;
will benefit from parallel execution, because each thread will be able to retrieve the MAX(<column>)
value from a portion of the table and then pass that on to the client.
BTW, what were the execution times for the SELECT MAX() ...
statement?