--sql語句的執行過程
1.連線方式
2.查詢語句的執行過程
1)語句解析
a)檢查庫快取,有無執行過相同的sql語句
沒有,進入b)
有,進入2)
b)檢查語法:關鍵字
c)檢查語義:表名,列名
d)獲得解析鎖
e)核對訪問許可權
f)確定執行計畫(explain plan)
g)儲存執行計畫到快取區
2)語句執行
a)檢查快取中有無資料塊;
沒有:進入b)
有:進入3)
b)查詢獲取目標資料檔案
3)返回結果到客戶端
3.dml的執行過程
1)語句解析
a)檢查庫快取,有無執行過相同的sql語句
沒有,進入b)
有,進入2)
b)檢查語法:關鍵字
c)檢查語義:表名,列名
d)獲得解析鎖
e)核對訪問許可權
f)確定執行計畫(explain plan)
g)儲存執行計畫到快取區
2)語句執行
a)檢查快取區有無要修改的資料
沒有:從資料檔案裝載到快取
b)在要修改的資料記錄上加鎖。防止在事務期間其他事務修改這些資料
c)把舊資料放到undo segment中,新資料放在資料塊對應的快取中
3)返回結果到客戶端,返回影響的記錄數
4.事務提交:commit
1)redo log buffer. scn
2)lgwr啟動,redo log buffer 寫入到redo log files
3)通知客戶端事務已提交
4)oracle server標示這個事務已完成
其他:dbwr把髒資料寫入資料檔案,示範資料記錄上的鎖
5.事務回滾:rollback
1)把undo segment中的資料寫回
2)釋放undo segment中被占用的空間
oracle 查詢最近執行過的 SQL語句
select sql text,last load time from v sql order by last load time desc select sql text,last load time from v sql where last load time is not null and ...
oracle 查詢最近執行過的 SQL語句
select sql text,last load time from v sql order by last load time desc select sql text,last load time from v sql where last load time is not null and ...
oracle 查詢最近執行過的 SQL語句
select sql text,last load time from v sql order by last load time desc select sql text,last load time from v sql where last load time is not null and ...