oracle進程數(shù)查詢
站在用戶的角度思考問題,與客戶深入溝通,找到沁水網(wǎng)站設計與沁水網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設計制作、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務覆蓋沁水地區(qū)。
1.cmd
2.sqlplus /nolog
3.connect sys/test@test as sysdba
SQL show parameter process;
NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- -----
aq_tm_processes????????????????????? integer???? 0
db_writer_processes????????????????? integer???? 1
gcs_server_processes???????????????? integer???? 0
job_queue_processes????????????????? integer???? 10
log_archive_max_processes??????????? integer???? 2
processes??????????????????????????? integer???? 1000
再查進程數(shù)
SQL select count(*) from v$session;
COUNT(*)
----------
224
查看ORACLE最大進程數(shù):
SQL select count(*) from v$session ?#連接數(shù)
SQL Select count(*) from v$session where status='ACTIVE' #并發(fā)連接數(shù)
SQL show parameter processes ?#最大連接
SQL alter system set processes = value scope = spfile;重啟數(shù)據(jù)庫 ?#修改連接
unix 1個用戶session 對應一個操作系統(tǒng) process
而 windows體現(xiàn)在線程
------------------------------------------------------------------------------
修改ORACLE最大進程數(shù):
使用sys,以sysdba權限登錄:
SQL show parameter processes;
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE ? ? ? ?VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes ? ? ? ? ? ? ? ? ? ? ?integer ? ? 1
db_writer_processes ? ? ? ? ? ? ? ? ?integer ? ? 1
job_queue_processes ? ? ? ? ? ? ? ? ?integer ? ? 10
log_archive_max_processes ? ? ? ? ? ?integer ? ? 1
processes ? ? ? ? ? ? ? ? ? ? ? ? ? ?integer ? ? 150
SQL alter system set processes=300 scope = spfile;
系統(tǒng)已更改。
SQL show parameter processes;
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE ? ? ? ?VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes ? ? ? ? ? ? ? ? ? ? ?integer ? ? 1
db_writer_processes ? ? ? ? ? ? ? ? ?integer ? ? 1
job_queue_processes ? ? ? ? ? ? ? ? ?integer ? ? 10
log_archive_max_processes ? ? ? ? ? ?integer ? ? 1
processes ? ? ? ? ? ? ? ? ? ? ? ? ? ?integer ? ? 150
SQL create pfile from spfile;
文件已創(chuàng)建。
重啟數(shù)據(jù)庫,
SQL show parameter processes;
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE ? ? ? ?VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes ? ? ? ? ? ? ? ? ? ? ?integer ? ? 1
db_writer_processes ? ? ? ? ? ? ? ? ?integer ? ? 1
job_queue_processes ? ? ? ? ? ? ? ? ?integer ? ? 10
log_archive_max_processes ? ? ? ? ? ?integer ? ? 1
processes ? ? ? ? ? ? ? ? ? ? ? ? ? ?integer ? ? 300
Oracle數(shù)據(jù)庫查看一個進程是如何執(zhí)行相關的實際SQL語句
SELECT b.sql_text, sid, serial#, osuser, machine
FROM v$session a, v$sqlarea b
WHERE a.sql_address = b.address;
查詢前臺發(fā)出的SQL語句.
select user_name,sql_text
from v$open_cursor
where sid in
(select sid from (select sid,serial#,username,program from v$session where status='ACTIVE'));
根據(jù)SPID查詢session
SELECT * FROM v$session WHERE paddr IN
(SELECT addr FROM v$process WHERE spid=spid);
根據(jù)SID查詢process
SELECT * FROM v$process WHERE addr IN
(SELECT paddr FROM v$session WHERE sid=sid);
DBA如何查詢其他用戶所進行的操作
SELECT sql_text
FROM v$sql t1, v$session t2
WHERE t1.address = t2.sql_address
AND t2.sid = sid;
根據(jù)process查詢sql語句
SELECT sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN (
SELECT DECODE (sql_hash_value,0, prev_hash_value,sql_hash_value ),
DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr = (SELECT addr
FROM v$process c
WHERE c.spid = '$processID'))
ORDER BY piece ASC;
其他
執(zhí)行下列命令語句
sqlplus / as sysdba EOF
create tablespace test datafile '/data/test01.dbf' size 10240M;
quit;
EOF
通過ps -ef|grep sqlplus命令得到上面所執(zhí)行的命令的進程id為:12345
(1)關于v$process
執(zhí)行下面的SQL是查不到相關的信息:
select * from v$process where spid='12345';
因為這個spid字段對應的并不是我們用ps命令從系統(tǒng)中查詢到的進程id,而是這個進程執(zhí)行的當前SQL的進程id,
也就是上面命令中的“create tablespace test datafile '/data/test01.dbf' size 10240M;”所對應的進程id,如果想
通過用ps命令從系統(tǒng)中查詢到的進程id查看對應的信息,那么必須使用下面語句:
select spid,sid,process,sql_address from v$session where process='12345'
上面sql中的process就是通過ps查看的進程id,而spid就是里面的sql語句所對應的進程id。
還可以通過上面的sql_address 查看正在執(zhí)行的SQL語句內(nèi)容:
select sql_text from v$sqlarea s,v$session ses where s.address=ses.sql_address and ses.process='12345';
(2)關于v$session
在查詢 v$session 視圖的時候,我們根據(jù)command字段內(nèi)部表示解碼每一個字段,當我們需要快速找出他們的 Oracle 系統(tǒng)的內(nèi)部情況時非常有用。
select
substr(s.username,1,18) username,substr(s.program,1,15) program,p.spid,s.process,
decode(s.command,
0,'No Command',
1,'Create Table',
2,'Insert',
3,'Select',
6,'Update',
7,'Delete',
9,'Create Index',
15,'Alter Table',
21,'Create View',
23,'Validate Index',
35,'Alter Database',
39,'Create Tablespace',
41,'Drop Tablespace',
40,'Alter Tablespace',
53,'Drop User',
62,'Analyze Table',
63,'Analyze Index',
s.command||': Other') command
from
v$session s,
v$process p,
v$transaction t,
v$rollstat r,
v$rollname n
where s.paddr = p.addr
and s.taddr = t.addr (+)
and t.xidusn = r.usn (+)
and r.usn = n.usn (+)
order by username
(3)幾個相關的SQL
--查看系統(tǒng)進程對應的信息
select se.saddr,se.sid,se.serial#,p.pid,se.paddr,s.sql_id,s.sql_text
from v$session se ,v$process p, v$sqlarea s
where se.paddr=p.addr and se.sql_address=s.address and se.process='1'
and se.username is not null
--查看所有的會話
select se.username,se.saddr,se.sid,se.serial#,se.process,s.sql_id
from v$session se,v$sqlarea s
where se.sql_address=s.address
--查看會話對應的sql內(nèi)容
select se.username,se.process,s.sql_text
from v$session se,v$sqlarea s
where se.sql_address=s.address and s.sql_id='1'
查看ORACLE最大進程數(shù):
SQL select count(*) from v$session #連接數(shù)
SQL Select count(*) from v$session where status='ACTIVE' #并發(fā)連接數(shù)
SQL show parameter processes #最大連接
SQL alter system set processes = value scope = spfile;重啟數(shù)據(jù)庫 #修改連接
unix 1個用戶session 對應一個操作系統(tǒng) process
而 windows體現(xiàn)在線程
------------------------------------------------------------------------------
修改ORACLE最大進程數(shù):
使用sys,以sysdba權限登錄:
SQL show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL alter system set processes=300 scope = spfile;
系統(tǒng)已更改。
SQL show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL create pfile from spfile;
文件已創(chuàng)建。
重啟數(shù)據(jù)庫,
SQL show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 300