如何根据pid查找进程进程PID捕捉该进程正在执行的sql语句

CopyRight &copy
, All rights reserved.
数据恢复·紧急救援·联系我们:手机: 邮件:|MSN联系:ORACLE-SQL脚本(4)
linux平台下,我们一般通过TOP命令,查看性能消耗最大的进程,如果看到是oracle进行,那么就需要通过进程号,查询该进程当前执行的SQL语句,网上百度有很多SQL,我一般通过下面的方式进行查找:
通过操作系统上的PID找出相应的SQL语句的SID:
SELECT s.sid, p.spid FROM v$session s, v$process p WHERE s.paddr = p.addr
& p.spid = &os pid&
然后通过SID找出相应的SQL语句的具体内容:
SELECT s.sid, s.status, q.sql_text FROM v$session s, v$sqltext q WHERE s.sql_hash_value = q.hash_value AND s.sql_address = q.address AND s.sid = &sid& order by q.
/*+ ORDERED */
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 = '&pid'))
ORDER BY piece ASC
Select s.Sid, s.Status, q.Sql_Text
From V$session s, V$sqltext q
Where s.Sql_Hash_Value = q.Hash_Value And s.Sql_Address = q.Address And
s.Sid In (Select s.Sid
From V$session s, V$process p
Where s.Paddr = p.Addr And
p.Spid = '&pid' )
Order By q.P
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:84369次
积分:1775
积分:1775
排名:第14061名
原创:91篇
转载:18篇
(1)(2)(1)(2)(3)(1)(4)(4)(4)(1)(2)(10)(7)(11)(11)(1)(2)(4)(1)(2)(4)(1)(1)(1)(1)(5)(1)(4)(1)(1)(1)(6)(3)(10)& & 查询SQLSERVER进程的执行的语句& & --检查锁语句&& & use master& & declare @& & declare @sql_handle binary(20);& & set @spid = 91& & SELECT @sql_handle = sql_handle& & FROM sysprocesses As A with (nolock)& & where spid = @spid& & select text& & from ::fn_get_sql(@sql_handle)
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
上一篇:下一篇:
相关经验教程
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益您所在的位置: &
如何在Linux中查看所有正在运行的进程
如何在Linux中查看所有正在运行的进程
进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。在Linux系统中有很多命令。那么哪些命令可以查看所有运行中的进程呢?让我们听飞哥介绍一下。
你可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。如果你想状态可以自动刷新,可以使用top命令。
输入下面的ps命令,显示所有运行中的进程:
# ps aux | less
-A:显示所有进程
a:显示终端中包括其它用户的所有进程
x:显示无控制终端的进程
任务:查看系统中的每个进程。
任务:查看非root运行的进程
# ps -U root -u root -N
任务:查看用户vivek运行的进程
# ps -u vivek
任务:top命令
top命令提供了运行中系统的动态实时视图。在命令提示行中输入top:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="356" alt="图1:top命令:显示Linux任务" width="598" src="/files/uploadimg/5270.jpg" />
图1:top命令:显示Linux任务
按q退出,按h进入帮助。
任务:显示进程的树状图。
pstree以树状显示正在运行的进程。树的根节点为pid或init。如果指定了用户名,进程树将以用户所拥有的进程作为根节点。
输出示例:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="427" alt="图2:pstree - 显示进程的树状图" width="603" src="/files/uploadimg/5271.jpg" />
图2:pstree - 显示进程的树状图
任务:使用ps列印进程树
任务:获得线程信息
输入下列命令:
任务:获得安全信息
输入下列命令:
# ps -eo euser,ruser,suser,fuser,f,comm,label
任务:将进程快照储存到文件中
输入下列命令:
# top -b -n1 & /tmp/process.log
你也可以将结果通过邮件发给自己:
# top -b -n1 | mail -s 'Process snapshot'
任务:查找进程
使用pgrep命令。pgrep能查找当前正在运行的进程并列出符合条件的进程ID。例如显示firefox的进程ID:
$ pgrep firefox
下面命令将显示进程名为sshd、所有者为root的进程。
$ pgrep -u root sshd
向htop和atop说hello
htop是一个类似top的交互式进程查看工具,但是可以垂直和水平滚动来查看所有进程和他们的命令行。进程的相关操作(killing,renicing)不需要输入PID。要安装htop输入命令:
# apt-get install htop
# yum install htop
在命令提示行中输入htop:
输出示例:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="249" alt="图3:htop - Interactive Linux / UNIX process viewer" width="308" src="/files/uploadimg/5272.jpg" />
图3:htop - Interactive Linux / UNIX process viewer
atop是一个用来查看Linux系统负载的交互式监控工具。它能展现系统层级的关键硬件资源(从性能角度)的使用情况,如CPU、内存、硬盘和网络。
它也可以根据进程层级的CPU和内存负载显示哪个进程造成了特定的负载;如果已经安装内核补丁可以显示每个进程的硬盘和网络负载。输入下面的命令启动atop:
输出示例:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="258" alt="图4:AT Computing's System
Process Monitor" width="308" src="/files/uploadimg/5273.jpg" />
图4:AT Computing's System & Process Monitor
原文链接:
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
Linux命令行吸引了大多数Linux爱好者。一个正常的Linux用户一般
教你从下载开始一步步安装Windows 10并解决升级过程中可能出现的问题。
八月的天气依然那样炎热,仿佛一点星火就会引起爆炸。
那些由“补丁周二”引发的大麻烦已经成为传说,但却依
日前,微软宣布 Windows 8.1 企业预览版开放下载,很
本书结合大量的典型实例,详细介绍了用Java来编写网络应用程序的技术。本书的范例都基于最新的JDK 1.5版本,书中内容包括:Java
51CTO旗下网站查询SQLSERVER进程的执行的语句
查询SQLSERVER进程的执行的语句
&--检查锁语句 & &
use master
declare @sql_handle binary(20);
set @spid = 91
SELECT @sql_handle = sql_handle
FROM sysprocesses As A with (nolock)
where spid = @spid
select text
from ::fn_get_sql(@sql_handle)

我要回帖

更多关于 linux 获取进程pid 的文章

 

随机推荐