在查看數據的鏈接狀況頗有用,寫完程序一邊測試代碼一邊查看數據庫鏈接的釋放狀況有助於分析優化出一個健壯的系統程序來。sql
一、查看當前的數據庫鏈接數數據庫
select count(*) from v$process ; --當前的數據庫鏈接數服務器
二、數據庫容許的最大鏈接數session
select value from v$parameter where name ='processes'; --數據庫容許的最大鏈接數併發
三、修改數據庫最大鏈接數
alter system set processes = 300 scope = spfile; --修改最大鏈接數:oracle
四、關閉/重啓數據庫
shutdown immediate; --關閉數據庫
startup; --重啓數據庫post
五、查看當前有哪些用戶正在使用數據測試
select osuser, a.username, cpu_time/executions/1000000||'s', b.sql_text, machine
from v$session a, v$sqlarea b
where a.sql_address =b.address
order by cpu_time/executions desc; --查看當前有哪些用戶正在使用數據優化
六、 --當前的session鏈接數操作系統
select count(*) from v$session --當前的session鏈接數
七、當前併發鏈接數
select count(*) from v$session where status='ACTIVE'; --併發鏈接數
v$process:
這個視圖提供的信息,都是oracle服務進程的信息,沒有客戶端程序相關的信息
服務進程分兩類,一是後臺的,一是dedicate/shared server
pid, serial# 這是oracle分配的PID
spid 這纔是操做系統的pid
program 這是服務進程對應的操做系統進程名
v$session:
這個視圖主要提供的是一個數據庫connect的信息,主要是client端的信息,好比如下字段:machine 在哪臺機器上terminal 使用什麼終端osuser 操做系統用戶是誰program 經過什麼客戶端程序,好比TOADprocess 操做系統分配給TOAD的進程號logon_time 在什麼時間username 以什麼oracle的賬號登陸command 執行了什麼類型的SQL命令sql_hash_value SQL語句信息有一些是server端的信息:paddr 即v$process中的server進程的addrserver 服務器是dedicate/shared