Oracle Query Execution
Download
Report
Transcript Oracle Query Execution
This PowerPoint is based on slides from:
Lee, JeongKyu and Seema Sirpal
Advanced Databases (ADAB)
4. Feb. 2010
By Henrik Høltzer
SQL Statements (IUDS)
Insert
Update
Delete
Select
What happens when
someone connects to
the database and issues
one of these
statements?
Connect to Oracle – What Happens
User
Process
Connect User/Pwd
Server
Process
Are “User” definition and privileges in SGA
“Dictionary Cache”?
If not, try to fetch from the “System” tablespace
If there, validate Pwd and privileges to login
Allow connection if all is right; otherwise decline
connection
“Select” – What Happens First?
Select *
From MyTab
Order by 1;
Is this statement in the “Library Cache”?
If statement cached then it has been recently been
“parsed” and “executed”
If not cached then “parse” the statement
If cached then skip parsing stage and execute statement
“Select” – Parsing the Statement
Select *
From MyTab
Order by 1;
Does “MyTab” exist?
Does user have Privs to select from “MyTab”
What columns are in “MyTab”
What is the first column in “MyTab”
“Select” – Executing the Statement
Select *
From MyTab
Order by 1;
Is “MyTab” data in the SGA “Buffer Cache”?
If not, fetch data into Buffer Cache
Sort data in “MyTab” by the first column
If can sort records in memory then do so
If cannot sort in memory then use “Temporary”
tablespace as disk-based staging area
Return records to client process
“I/U/D” – What Happens First?
Insert (a,b,c)
Into MyTab;
Is this statement in the “Library Cache”?
If statement cached then it has been recently been
“parsed” and “executed”
If not cached then “parse” the statement
If cached then skip parsing stage and execute statement
“I/U/D” – Executing the Statement
Insert (a,b,c)
Into MyTab;
Validate values to be inserted
Execute the statement
Keep DB version of the record in “Undo” tablespace
until Commit or Rollback
Record changes in SGA “Redo Log Buffer”
Change records in SGA “Buffer Cache”
DBWn writes changed records to data file(s) as part of
buffer cache management
“I/U/D” – Executing the Statement
Insert (a,b,c)
Into MyTab;
Commit;
or
Rollback;
If “Commit” then…
LGWn writes “Redo Log Buffer” entries to “Redo Logs”
Undo entries are invalidated
If “Rollback” then…
Migrate DB version of record in Undo back to
tablespace/data file
Archivelog Mode
If Instance in “Archivelog” mode Redo Log Files are
“Archived” to Archive Logs; which may be used to
recover your database in the case of disaster
Oracle Database
Data Files
Control Files
Redo Log Files
Archived Logs
ARCn
Summary
What we called a “Database” is really an “Instance”
and a “Database.”
An Oracle “Instance” is not persistent. It consists
of the System Global Area (SGA) and a collection
of processes.
An Oracle “Database” is persistent. It consists of a
collection of “Required” and “User” tablespaces
(with corresponding data files) along with other
supporting files.
Nearly every component of the “Instance” and
“Database” are mobilized to execute SQL
statements.