Last time we introduced:Oracle Database ProcessNext, let's take a look at the last Oracle process:Subordinate ProcessSlave process ). Oracle has two types of subordinate processes: I/O subordinate processes and parallel query subordinate processes. Next, let's start introducing them separately.
I/O subordinate Process
I/O slave processes are used to simulate asynchronous I/O for systems or devices that do not support asynchronous I/O. For example, the tape device is quite slow.) asynchronous I/O is not supported. By using an I/O slave process, you can enable the tape drive to mimic the features normally provided only for the disk drive. Just like supporting real asynchronous I/O, the process caller who writes the device will collect a large amount of data and write it to the writer. When the data is written successfully, the writer notifies the original caller that the writer is an I/O-dependent process rather than an operating system. Then, the caller deletes the data from the list of data to be written.
In this way, we can get a higher throughput, because the I/O sub-process will wait for the slow device, and the original call process will be able to get away from it, you can do other important work to collect the data to be written next time.
The I/O slave process has two purposes in Oracle. DBWn and LGWR can use the I/O slave process to simulate asynchronous I/O, and RMAN may also use the I/O slave process when writing the tape.
Two parameters control the use of the I/O subordinate process:
BACKUP_TAPE_IO_SLAVES: this parameter specifies whether RMAN uses an I/O slave process to back up, copy, or restore data to tape. This parameter is a Boolean value because it is designed for tape devices and can only be accessed by one process at a time, instead of using the number of subordinate processes, this may be unexpected ). RMAN starts multiple necessary processes for the physical device in use. When BACKUP_TAPE_IO_SLAVES = TRUE, an I/O slave process is used to read and write data from the tape device. If this parameter is set to FALSE, the backup will not be completed using the I/O slave process. Instead, the dedicated server process that completes the backup directly accesses the tape device.
DBWR_IO_SLAVES: this parameter specifies the number of I/O subordinate processes used by the DBW0 process. The DBW0 process and its subordinate processes always write dirty blocks in the buffer cache to the disk. The default value is 0, indicating that I/O subordinate processes are not used. Note: If you set this parameter to a non-0 value, LGWR and ARCH will also use their own I/O subordinate processes, LGWR and ARCH allow up to four I/O subordinate processes.
The name of the dbwr I/O subordinate process is I1nn, and the name of the LGWRI/O subordinate process is I2nn, where nn is a number.
Concurrent query of subordinate Processes
Oracle7.1.6 introduces the parallel query function. This function is used to CREATE an execution plan for SQL statements such as SELECT, CREATE TABLE, CREATE INDEX, and UPDATE, including multiple sub-accounts that can be completed at the same time. Merge the output of each execution plan to form a larger result. The goal is to complete the operation in a small amount of time, which is only a small part of the time required to complete the same operation in a serial mode.
For example, assume that a large table is distributed on 10 different files. You have 16 CPUs configured and need to execute an ad hoc query on this table. Another way is to break down the query plan into 32 smaller parts and take full advantage of the machine, instead of using only one process to read and process all data serially. In contrast, the previous approach is much better.
When you use parallel query, you will see processes named Pnnn, which are subordinate processes of parallel query. When processing a parallel statement, the server process is called the parallel query coordinator ). The name of the server process on the operating system does not change. However, if you refer to the Coordinator process when reading the documents about parallel queries, you should know that this is the original server process.
Here is an introduction to the subordinate process of the Oracle database process. I hope this introduction will help you gain some benefits.
Oracle process articles:
Explanation of server processes of Oracle Database Processes
Detailed description of processes after the Oracle database Process