In order to communicate with oracle database, oracle users need a program such as SQL *Plus which can issue SQL statements and few processes which can execute these SQL statements. These processes are divided into User Process, Server Process and Background Processes. User process runs user application like SQL *Plus. Server process manages oracle user process’s requests. Server process executes SQL statements and returns result to user process. Background processes are the core of oracle database which handle over all database operations. Continue reading “Oracle Shared Server and Oracle Dedicated Server Architecture”
Oracle server requires some metadata information to process SQL statements. This information is necessary to maintain data integrity, data consistency and data security. When a user submits a query, oracle needs detailed information about objects involved in the query, for example, whether the accessed objects exist and the user has required privileges. Continue reading “Oracle Dictionary Cache | Oracle Data Dictionary”
Library cache is very important part of Oracle Shared pool. Shared Pool controls execution of SQL statements. Shared pool is divided into Data dictionary Cache and Library Cache. Main component of Library cache include Shared SQL Area and Private SQL Area (in case of shared server configuration).In Dedicated server configuration Private SQL area is created in PGA of server process. In oracle database each statement is associated with a shared area and a private area. Both are discussed in detail below.
Oracle database keeps record of changes made to data. Every time user performs a DML, DDL or DCL operation, its redo entries are also created. These redo entries contain commands to rebuild or redo the changes. These entries are stored in Redo Log buffer. Log writer process (LGWR) writes these redo entries to redo log files. Redo log buffer works in circular fashion. It means that it overwrites old entries. Continue reading “Redo Log Buffer & Log writer process (LGWR)”
Data required by oracle user process is loaded into buffer cache, if it is not already present in cache. Proper memory tuning is required to avoid repeated disk access for the same data. This means that there should be enough space in buffer cache to hold required data for long time. If same data is required in very short intervals then such data should be permanently pinned into memory. Oracle allows us to use multiple buffers. Using multiple buffers we can control that how long objects should be kept in memory.
Database Buffer cache is one of the most important components of System Global Area (SGA). Database Buffer Cache is the place where data blocks are copied from datafiles to perform SQL operations. Buffer Cache is shared memory structure and it is concurrently accessed by all server processes.
Working of Database buffer Cache
Buffer Cache is organized into two lists
Write list contains dirty buffers. These are the data blocks which contain modified data and needed to be written to datafiles.
When query is submitted to oracle server, various processing steps are performed to execute query. Following main steps are involved in this process.
1- Query Parsing
2- Optimizer determines most efficient way to execute query and generates an execution plan.
3- Finally SQL engine executes query.
In 1st step, SQL server checks syntax of query and outputs error if found.
After parsing of query, optimizer generates execution plan. Execution plan produced by optimizer depends on two main possible goals Continue reading “SQL Processing”
Oracle Database Architecture consists of following three main structures
1- Storage Structure
2- Memory Structure
3- Process Structure
Two of these constitute in primary storage and one in secondary storage.
When a database is created, database files are installed on secondary storage. These files include Control files, Data files, online redo log files, parameter file and password file. All these files formulate “Storage Structure”. Continue reading “Oracle Database Architecture | Oracle Instance”