-gtc server option

Controls the maximum processor concurrency that the database server allows.

Syntax
{ dbsrv11 | dbeng11 } -gtc logical-processors-to-use ...
Applies to

Linux, Solaris, and Windows operating systems executing on Intel-compatible x86 and x64 platforms, excluding Windows Mobile.

Remarks

When you start the database server, the number of physical and logical processors detected by the database server appears in the database server messages window.

Physical processors are sometimes referred to as packages or dies, and are the CPUs of the computer. Additional logical processors exist when the physical processors support hyperthreading or are themselves configured as multiprocessors (usually referred to as multi-core processors). The operating system schedules threads on logical processors.

The -gtc option allows you to specify the number of logical processors that can be used by the database server. Its effect is to limit the number of database server threads that are created at server startup. This limits the number of active database server tasks that can execute concurrently at any one time. By default, the number of threads created is 1 + the number of logical processors on all licensed physical processors.

By default, the database server allows concurrent use of all logical processors (cores or hyperthreads) on each licensed physical processor. For example, on a single-CPU system that supports hyperthreading, by default the database server permits two threads to run concurrently on one physical processor. If the -gtc option is specified, and the number of logical processors to be used is less than the total available for the number of physical processors that are licensed, then the database server allocates logical processors based on round-robin assignment. Specifying 1 for the -gtc option implicitly disables intra-query parallelism (parallel processing of individual queries). Intra-query parallelism can also be explicitly limited or disabled outright using the max_query_tasks option. See max_query_tasks option [database].

See also
Example

Consider the following examples for a Windows-based SMP computer. In each case, assume a 4-processor system with 2 cores on each physical processor (hence 8 logical processors). The physical processors are identified with letters and the logical processors (cores in this case) are identified with numbers. This 4-processor system therefore has processing units A0, A1, B0, B1, C0, C1, D0, and D1.

Scenario Network database server settings
A single CPU license or -gt 1 specified
  • -gt 1
  • -gtc 2
  • -gn 20

Threads can execute on A0 and A1.

No licensing restrictions on the CPU with -gtc 5 specified
  • -gt 4
  • -gtc 5
  • -gn 20

Threads can execute on A0, A1, B0, C0, and D0.

A database server with a 3 CPU license and -gtc 5 specified
  • -gt 3
  • -gtc 5
  • -gn 20

Threads can execute on A0, A1, B0, B1, and C0.

No licensing restrictions on the CPU with -gtc 1 specified
  • -gt 4
  • -gtc 1
  • -gn 20

Threads can execute only on A0.