sql从磁盘中读取数据使用的是什么进程

sql从磁盘中读取数据使用的是什么进程,第1张

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 username 

From 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的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10192590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存