I just installed Oracle XE 18c ... In this page, they list the available features/resources. One of them is the use of two CPU threads ...

But, in practical terms, what does this mean? Does this mean that only two queries can be executed concurrrently? or what?


From the Installation Guide ( here )

Oracle Database XE limits itself automatically to two cores for processing. For example, on a computer with 2 dual-core CPUs (four cores), if a large number of database clients try to simultaneously execute CPU-intensive queries, then Oracle Database XE will process the queries at the rate of just two cores even if more CPU capacity is available.

I would image "large number" means ">2".

| improve this answer | |

You can run an arbitrary number of queries concurrently but the system ma run slower than a system without such a CPU restriction.

There is a difference between threads and cores. So the link you are referencing to and the link Michael Kurz is referencing to are contradictory. On an Intel CPU a core from a licensing view and the Intel point of view is usually 2 threads. There are also parameters that you can use to restrict the usage of the number of threads, e.g. CPU_COUNT. So I don't know if the XE edition is restricted to 2 threads or 2 cores (= 4 threads). But such a restriction never means that there is a restriction to the number of session that can be logged in or the number of queries that can run concurrently. Oracle acts like other preemptive multitasking systems. If there are more tasks than CPU-resources (threads) Oracle splits the tasks into subtasks and allows some subtasks to run on the CPU while the current subtasks of the remaining subtasks have to wait. When a running subtasks finishes then the next subtask of its task has to wait an a subtask of a task that was waiting is executed now.

All in all this means that such a CPU restriction may slow down your system because less CPU time is assigned to the Oracle sessions but nevertheless an arbitrary number of queries can be run concurrently.

| improve this answer | |
  • Thanks for your answer! However, even if the documentation is contradictory in the use of words like threads or CPU cores; the effect is the same: only two queries, or following your example, only two subtasks will be executed at the same time, and other subtasks will have to wait ... – Carlitos Way Jun 13 at 20:37
  • @CarlitosWay I am not sure if my explanation was clear enough. 1. From the user's perspective all queries took longer. But the queries will not be processed one by one, 2. two cores is twice the computing power of two threads – miracle173 Jun 14 at 15:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.