nnchj 发表于 2009-12-02 11:02

已经知道进程编号pid,如何知道所对应的SQL语句?

OS是AIX,发现系统繁忙。
已经通过TOP找到了消耗系统资源的PID,如何在DB2中,找到PID所对应的SQL语句?

mdkii 发表于 2009-12-07 11:12

如果你使用网络方式连接(ODBC,JDBC,CLI等)连接数据库,可以采用db2pd -agents或db2 get snapshot for application的方法找到你的clientpid,
如果你是用CLP(命令行方式),用上述方法找到的是db2bp(db2 back ground process)进程的pid,
你可以通过ps -ef方式找到db2bp所带的第一参数值,该值的前几位数字是你实际的client pid。
如果你使用dynamic SQL 方式,你可以通过db2pd -appl找到的语句AnchID和StmtUID,再通过db2pd -dynamic找到你的实际SQL,或者你也可以
通过db2 get snapshot for application得命令找到你的SQL语句。
如果你是使用static SQL方式,那么你可以通过db2 get snapshot for application找到package name和section number,在系统视图
syscat.statements里可以找到你的SQL。

大梦 发表于 2009-12-09 19:51

通过快照表函数能查询到运行的sql!
看看之前的精华贴,我忘了是哪个函数了!
这个pid意义不大!肯定是db2的核心进程!
页: [1]
查看完整版本: 已经知道进程编号pid,如何知道所对应的SQL语句?