從連線到資料(三)
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
- .NET雲原生應用實踐(三):連線到PostgreSQL資料庫SQL資料庫
- 如何從 Windows 上用 SSH 連線到 LinuxWindowsLinux
- 如何從 InfluxDB/OpenTSDB 無縫連線到 TDengineUX
- 【YashanDB資料庫】PHP無法透過ODBC連線到資料庫資料庫PHP
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- hive從入門到放棄(三)——DML資料操作Hive
- 連線資料庫資料庫
- 從原始碼分析DBCP資料庫連線池的原理原始碼資料庫
- Python連線三大資料庫MS Sql Server、Oracle、MySQLPython大資料資料庫ServerOracleMySql
- python 連線 mongo 資料庫連線超時PythonGo資料庫
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- airtest資料線連線手機AI
- 2018大資料學習路線從入門到精通大資料
- JDBC連線資料庫JDBC資料庫
- 連線資料庫-mysql資料庫MySql
- jmeter連線資料庫JMeter資料庫
- Mybatis連線資料庫MyBatis資料庫
- Android 連線資料庫Android資料庫
- java連線資料庫Java資料庫
- FTP資料埠連線FTP
- JSP連線資料庫JS資料庫
- mysqli連線資料庫MySql資料庫
- Mongodb資料庫連線MongoDB資料庫
- dbForge Studio for SQL Server入門教程:如何連線到資料庫SQLServer資料庫
- WebSocket:從建立連線到關閉的完整流程Web
- 淺析《死亡擱淺》的“連線”——從玩法到核心
- 分散式 | 資料庫連線如何正確處理 TCP 連線三次握手失敗分散式資料庫TCP
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- 從一個資料庫連線數計算公式談起資料庫公式
- iis網站怎麼連線資料庫連線網站資料庫
- 《精通資料科學:從線性迴歸到深度學習》資料科學深度學習
- 2018最新大資料學習路線從入門到精通大資料
- python資料插入連線MySQL資料庫PythonMySql資料庫
- Kettle自定義資料庫連線型別連線HGDB資料庫型別
- linux 資料庫localhostl連線成功127.0.0.1連線失敗Linux資料庫localhost127.0.0.1
- Python連線MySQL資料庫PythonMySql資料庫
- Flask資料庫連線池Flask資料庫
- IDEA中資料庫連線Idea資料庫