從連線到資料(三)
3、獲取資料集合
SQL語句是一種集合操作語言。返回的結果都是以集合的形式給出。但Oracle操作的最小資料單位是block資料塊,要從資料塊中把資料行提取出來。
首先,Server Process是獲取資料塊的最直接主體。首先,他會到SGA的資料塊快取區buffer cache中,找目標資料塊是否被快取,在快取區內。
如果資料塊沒有在快取區內,Server Process會自己到物理硬碟上讀取相應檔案。最後找到合適的資料塊。讀入到Buffer Cache裡面。Oracle初始化引數中,有一個db_file_multiblock_read_count,表示一次進行物理讀獲取的最多資料塊個數。
SQL> show parameter multiblock
NAME TYPE VALUE
------------------------------------ -----------------------
db_file_multiblock_read_count integer 16
快取到buffer cache中的資料塊,歸屬在buffer cache管理之中。目前Oracle管理的方式是使用LRU演算法,根據資料塊的訪問頻率,buffer在以不同的頻率age out出快取。
資料行的標記rowid,是唯一表示資料行物理位置的內容。可以定位到一行的資訊。rowid是一個多資訊構成的資料串,包括物件編號、檔案號、資料塊號和slot行號幾部分構成。獲取到rowid,就可以最快的定位到一行記錄。
4、斷開連線
session是有active和inactive的狀態。當一個session沒有響應、崩潰的時候,Oracle會自主的做善後工作。
包括,將對應的Server Process終止,回滾事務,釋放PGA空間和釋放物件上的鎖。這些工作主要由PMON完成。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17203031/viewspace-683199/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從連線到資料(一)
- 從連線到資料(二)
- 資料庫連線分析(1)-從JDBC到MyBatis資料庫JDBCMyBatis
- 連線到資料庫(JSP)資料庫JS
- 資料庫連線學到不少資料庫
- 連線到 ASP.NET 資料庫ASP.NET資料庫
- JDBC連線三種資料庫例子JDBC資料庫
- 配置ORACLE 客戶端連線到資料庫Oracle客戶端資料庫
- 資料庫例項到nomount 使用連線串無法連線到資料庫 報ORA-12528錯誤資料庫
- 璧說:從資料庫連線池說起資料庫
- 從HelloWorld啟航——資料庫連線字串的困惑資料庫字串
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 資料庫三表連線查詢怎麼做資料庫
- 連線資料庫資料庫
- 資料庫連線資料庫
- hive從入門到放棄(三)——DML資料操作Hive
- 如何從 InfluxDB/OpenTSDB 無縫連線到 TDengineUX
- 如何從 Windows 上用 SSH 連線到 LinuxWindowsLinux
- 從“大資料”到“厚資料”大資料
- 從原始碼分析DBCP資料庫連線池的原理原始碼資料庫
- [資料庫連線字串] Access 連線字串(轉)資料庫字串
- [資料庫連線字串]Access連線字串(轉)資料庫字串
- 各種連線資料庫的連線字串資料庫字串
- airtest資料線連線手機AI
- WebSocket:從建立連線到關閉的完整流程Web
- JDBC連線資料庫JDBC資料庫
- java連線資料庫Java資料庫
- Mybatis連線資料庫MyBatis資料庫
- FTP資料埠連線FTP
- Mongodb資料庫連線MongoDB資料庫
- mysqli連線資料庫MySql資料庫
- 資料庫的連線資料庫
- 連線mysql資料庫MySql資料庫
- 資料庫連線池資料庫
- 資料庫連線==odbc資料庫
- 資料庫連線字串資料庫字串
- 資料來源連線資料庫資料庫
- orm2 中文文件 1. 連線到資料庫ORM資料庫