If there are not enough worker processes available at runtime, the execution engine attempts to reduce the number of worker processes used by the exchange operators present in the plan.
It does so in two ways:
First, by attempting to reduce the worker process usage of certain exchange operators in the query plan without resorting to serial recompilation of the query. Depending on the semantics of the query plan, certain exchange operators are adjustable and some are not. Some are limited in the way they can be adjusted.
Parallel query plans need a minimum number of worker processes to run. When enough worker processes are not available, the query is recompiled serially. When recompilation is not possible, the query is aborted and the appropriate error message is generated.
Adaptive Server supports serial recompilation for these type of queries:
All ad-hoc select queries, except for select into, alter table, and execute immediate queries.
All stored procedures, except for select into and alter table queries.
Support for select into for ad-hoc and stored procedures will be available in a future release.