SP进程。在sql软件中,从磁盘中读取数据使用的是SP进程。SQL指结构化查询语言,全称是StructuredQueryLanguage。SQL让您可以访问和处理数据库,包括数据插入、查询、更新和删除。
1、用SQL语句:select count() from masterdbosysprocesses 或者 sp_who
2、用管理界面:
SQL2000:进入企业管理器,管理——当前活动——进程信息
SQL2005:进入manager studio ,展开对象管理器,管理——右键“活动监视器”——查看进程
SQL2008:进放manager studio 在菜单栏下面有一行图标,点击最后一个图标“活动监视器”,进入活动监视器的界面后,点击“进程”
查看一下数据库现有的进程数,是否已经达到参数processes的大小
-- select count() from v$process; 取得数据库目前的进程数。
-- select value from v$parameter where name = 'processes'; 取得进程数的上限
(1)查看当前会话数、processes和sessions值,发现session数14和processes值150已经非常接近
SQL> select count() from v$session;COUNT()
----------
146
SQL> show parameter processes
NAME TYPE VALUE
------------------------------------ ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 2
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 150
(2) Modify the two parameter(processes,sessions)
SQL> alter system set processes=300 scope=spfile;
System altered
SQL> alter system set sessions=335 scope=spfile;
System altered
(3) Let's shutdown and startup database in order to let the two parameter taken effect
SQL> shutdown immediate;
Database closed
Database dismounted
ORACLE instance shut down
SQL> startup
ORACLE instance started
Total System Global Area 1610612736 bytes
Fixed Size 2030456 bytes
Variable Size 989856904 bytes
Database Buffers 603979776 bytes
Redo Buffers 14745600 bytes
Database mounted
Database opened
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 102030 - 64bit Production
With the Partitioning, OLAP and Data Mining options
$ sqlplus /nolog
(4) test the result
SQLPlus: Release 102030 - Production on 星期五 12月 9 09:53:13 2011
Copyright (c) 1982, 2006, Oracle All Rights Reserved
SQL> conn sys/oracle@orcl as sysdba
Connected
SQL>
--the end
当你运行sql的时候占用资源就是很高的,数据库中只有sqlserver占用资源最少,越大型占用越高,你把你的服务项重新启动一次就可以了,如果还是不行就重启下服务器,如果还是不行请留言我远程帮你 *** 作,千万不要用360杀呵呵,360是流氓软件,杀一次数据库就奔溃了
系统表 sysprocesses 中有用户连接记录。可以根据数据库名称,查看连接的用户。
Select spid,hostname,loginame,user_name(uid)As usernameFrom sysprocesses
Where dbid=db_id('glkf')
Oracle数据库查看一个进程是如何执行相关的实际SQL语句
SELECT bsql_text, sid, serial#, osuser, machine
FROM v$session a, v$sqlarea b
WHERE asql_address = baddress;
查询前台发出的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'));
根据SPID查询session
SELECT FROM v$session WHERE paddr IN
(SELECT addr FROM v$process WHERE spid=&spid);
根据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 t1address = t2sql_address
AND t2sid = &sid;
根据process查询sql语句
SELECT sql_text
FROM v$sqltext a
WHERE (ahash_value, aaddress) 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 bpaddr = (SELECT addr
FROM v$process c
WHERE cspid = '$processID'))
ORDER BY piece ASC;
其他
执行下列命令语句
sqlplus / as sysdba <<EOF
create tablespace test datafile '/data/test01dbf' size 10240M;
quit;
EOF
通过ps -ef|grep sqlplus命令得到上面所执行的命令的进程id为:12345
(1)关于v$process
执行下面的SQL是查不到相关的信息:
select from v$process where spid='12345';
因为这个spid字段对应的并不是我们用ps命令从系统中查询到的进程id,而是这个进程执行的当前SQL的进程id,
也就是上面命令中的“create tablespace test datafile '/data/test01dbf' size 10240M;”所对应的进程id,如果想
通过用ps命令从系统中查询到的进程id查看对应的信息,那么必须使用下面语句:
select spid,sid,process,sql_address from v$session where process='12345'
上面sql中的process就是通过ps查看的进程id,而spid就是里面的sql语句所对应的进程id。
还可以通过上面的sql_address 查看正在执行的SQL语句内容:
select sql_text from v$sqlarea s,v$session ses where saddress=sessql_address and sesprocess='12345';
(2)关于v$session
在查询 v$session 视图的时候,我们根据command字段内部表示解码每一个字段,当我们需要快速找出他们的 Oracle 系统的内部情况时非常有用。
select
substr(susername,1,18) username,substr(sprogram,1,15) program,pspid,sprocess,
decode(scommand,
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',
scommand||': Other') command
from
v$session s,
v$process p,
v$transaction t,
v$rollstat r,
v$rollname n
where spaddr = paddr
and staddr = taddr (+)
and txidusn = rusn (+)
and rusn = nusn (+)
order by username
(3)几个相关的SQL
--查看系统进程对应的信息
select sesaddr,sesid,seserial#,ppid,sepaddr,ssql_id,ssql_text
from v$session se ,v$process p, v$sqlarea s
where sepaddr=paddr and sesql_address=saddress and seprocess='&1'
and seusername is not null
--查看所有的会话
select seusername,sesaddr,sesid,seserial#,seprocess,ssql_id
from v$session se,v$sqlarea s
where sesql_address=saddress
--查看会话对应的sql内容
select seusername,seprocess,ssql_text
from v$session se,v$sqlarea s
where sesql_address=saddress and ssql_id='&1'
以上就是关于sql从磁盘中读取数据使用的是什么进程全部的内容,包括:sql从磁盘中读取数据使用的是什么进程、如何查看SQL SERVER数据库当前连接数、查看一下数据库现有的进程数,是否已经达到参数processes的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)