原文鏈接:http://blog.csdn.net/zmx729618/article/details/54018629
-----------------------------------------------------------------------------
在查看數據的連接情況很有用,寫完程序一邊測試代碼一邊查看數據庫連接的釋放情況有助于分析優化出一個健壯的系統程序來。
1、查看當前的數據庫連接數
?select count(*) from v$process ;????--當前的數據庫連接數
2、數據庫允許的最大連接數
?select value from v$parameter where name ='processes';? --數據庫允許的最大連接數
3、修改數據庫最大連接數
?alter system set processes = 300 scope = spfile; ?--修改最大連接數:
4、關閉/重啟數據庫
?shutdown immediate; --關閉數據庫
?startup; --重啟數據庫
5、查看當前有哪些用戶正在使用數據
?
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;? --查看當前有哪些用戶正在使用數據
6、?
?
?select count(*) from v$session?
7、當前并發連接數
?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? ?通過什么客戶端程序,比如TOAD,PLSQL Developer
process? ?操作系統分配給TOAD,PLSQL Developer的進程號
logon_time??在什么時間
username? ? 以什么oracle的帳號登錄
command? ???執行了什么類型的SQL命令
sql_hash_value??SQL語句信息
有一些是server端的信息:
paddr? ?即v$process中的server進程的addr
server??服務器是dedicate/shared