Symmetric Multiple Processor (SMP) Utilization

SPD Server uses parallel processing where possible to increase performance. Parallel processing uses multiple processors to execute more than one set of instructions, or threads, concurrently. The server is oriented to exploit parallelism whenever it can improve I/O times and processor utilization.
A fundamental question about parallelism is whether using additional CPUs on a specific problem will deliver data faster. Extra CPUs do not guarantee faster results every time. The amount of CPU-intensive work that a thread must do needs to take long enough to justify the cost of the thread. The cost of the thread is creating it, managing it, and interacting with other threads involved in the same parallel algorithm.
If not properly matched to the workload, the parallel algorithm can use more CPU time without reducing data delivery time. Additional threads can create conflicting demands for critical system resources such as physical memory. Excessive execution times can occur if too many threads attempt to access a large table at the same time, because many threads demand large amounts of physical memory. Extreme resource constraints can result in slower overall processing.
The server focuses on the following areas to speed overall processing using parallelism:
  • User-definable parallel execution blocks for SQL explicit pass-through statements.
  • Parallel aggregation for common summary functions when performing SELECT [...] GROUP BY statements.
  • WHERE clause evaluation for indexed and non-indexed strategies.
  • Overlapped table and concurrent index updates when appending to tables.
  • Index creation when creating multiple indexes.
  • Optimize PROC SORT BY clauses.
  • Pipelined read-ahead when concurrently accessing multiple tables.
Last updated: February 3, 2017