Oracle中session 與 connect 連繫與區別

session(會話)和connection(鏈接)的定義:數據庫

connection:是一個物理的概念,它指的是一個經過網絡創建的客戶端和專有服務器(Dedicated Server)或共享服務器(Shared Server)的一個網絡鏈接,既是一條物理路勁。服務器

session:是一個邏輯的概念,它是存在於實例中,一個鏈接能夠擁有多個會話也能夠沒有會話,同一個鏈接上的不一樣會話之間不會相互影響。網絡

session和connection的區別與聯繫:session

1. 一個用戶對應一個session,但不必定對應一個connection ,由於幾個session能夠共享一個connection。server

2. 在dedicated sever(專用服務器)鏈接模式下,session和connection一一對應,且個數上session = connection。進程

3. 在shared server(共享服務器)鏈接模式下, 個數上session >= connection。ip

4. 在shared server的multiplexing session模式下,session >= connection,且並不一一對應。io

有一位專家的比喻更形象:服務器端

有A/B兩個城市,須要從A運送白菜到B城數據

咱們先建設一條公路

而後運送白菜過去,包括準備白菜和運送白菜以及返回等一系列的動做。

一條公路,能夠運送0-n次的白菜

固然從A到B的公路也可能不僅一條。

某一次運送白菜,能夠在真正上路時纔開通某一條道路

一次運送不會影響別的運送的狀態

對應數據庫

A表明客戶端進程

B表明服務器端進程

公路表明鏈接,

運送一次白菜表明一個會話

一個鏈接能夠進行屢次的會話

一個會話能夠不依賴於某個鏈接,甚至沒有鏈接(當我準備好了,真正開始運送時再創建鏈接)

一個會話不會影響別的會話

相關文章
相關標籤/搜索