查詢V$SESSION,你會看到SERVER可能會有DEDICATED| SHARED| PSEUDO| NONE 四種值,如果SERVER欄位的值除了DEDICATED,還有NONE,則說明當前實例啟動了共用伺服器,並且SERVER為NONE的會話表示其正使用共用伺服器連接模式,同時,如果只顯示有... ...
查詢V$SESSION,你會看到SERVER可能會有DEDICATED| SHARED| PSEUDO| NONE 四種值,如果SERVER欄位的值除了DEDICATED,還有NONE,則說明當前實例啟動了共用伺服器,並且SERVER為NONE的會話表示其正使用共用伺服器連接模式,同時,如果只顯示有DEDICATED,則不能說明伺服器就一定工作在專用伺服器下麵,此時也有可能啟動了共用模式。只是目前連接到資料庫的都是專用伺服器模式
SQL> select distinct server from v$session;
SERVER
---------
DEDICATED
NONE
SHARED
但是SERVER欄位的NONE和SHARED兩者是啥區別呢? 什麼情況下為NONE? 什麼情況下為SHARED呢?要想知道兩者的區別,其實很簡單,使用共用伺服器模式連接到資料庫,開啟兩個不同會話(不同的TNS),用SELECT USERENV('SID') FROM DUAL查詢當前會話ID,下麵我實驗的兩個會話ID為697和447
如果你在會話ID為697的視窗執行下麵SQL,你會發現697的SERVER值為SHARED
如果你在會話ID為447的視窗執行下麵SQL,你會發現447的SERVER值為SHARED
其實狀態為NONE的當前共用伺服器進程沒有任務處理,若果進程正在執行某些任務則會為SHARED狀態
In MTS/Shared Server configuration when you see value 'NONE' (as shown below), it means there is no task being processed by shared server for that session. The server column will infact show status of 'SHARED' if there is some task being processed at that particular time by the shared server process for that session.