檢視當前的資料庫連線數
select count(*) from v$process ;
資料庫允許的最大連線數
select value from v$parameter where name ='processes';
修改資料庫最大連線數
alter system set processes = 300 scope = spfile;
關閉/重啟資料庫
shutdown immediate; --關閉資料庫
startup; --重啟資料庫
當前的session連線數
select count(*) from v$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 通過什麼客戶端程式,比如toad
process 作業系統分配給toad的程序號
logon_time 在什麼時間
username 以什麼oracle的帳號登入
command 執行了什麼型別的sql命令
sql_hash_value sql語句資訊
server端的資訊:
paddr 即v$process中的server程序的addr
server 伺服器是dedicate/shared
發生死鎖時的排查方法:
檢視那些表被鎖住:
sql> select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
檢視引起死鎖的會話:
sql> select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
檢視被阻塞的會話:
select * from dba_waiters;
可以提交或回滾阻塞的話,釋放鎖或者殺掉oracle程序:
alter system kill sessin 'sid,serial#';
Oracle效能排查小案例
原創文章標籤經驗分享 文章分類oracle 資料庫閱讀數28 昨天乙個老同學找我說碰到了資料庫的問題,因為各種雜事一直給耽誤了下,今天做了乙個初步的分析。首先這是乙個做統計業務的資料庫,型別可以歸為olap方向。根據反饋,在週末的時候相關的etl任務會卡住,問題已經過去了一段時間,確切的說是發生了1...
oracle sql效能排查 查詢sql執行時間
找出執行最慢的sql 根據平均耗時大小排序 select a.sql text,a.sql id,a.executions 總執行次數 nvl a.elapsed time,0 1000 1000 總耗時 秒 nvl a.elapsed time,0 nvl decode a.executions,...
sql耗時排查
今天遇見乙個挺好的語句,保留下來了。需要的自取 select top1000 qs.creation time 時間,substring st.text,qs.statement start offset 2 1,case qs.statement end offset when 1 then da...