研究下网页sql如何追踪。

研究下网页sql如何追踪。,第1张

在program name中,toadexe或sqlplusexe连接数据库的,很好定位。但是网页连接数据库的sql,如何追踪呢? 打开网页,发现session browser中多了 w3wpexe ,有时候是一个 w3wpexe ,有时候是多个。而且过段时间, w3wpexe 就消失了。可以看到一些sql statement。

1、首先需要查询出需要使用SQL Server Profiler跟踪的数据库标识ID

2、打开SQL Server Profiler工具

3、输入数据库的SA与密码,点击连接。

4、在跟踪属性中,点击事件选择

5、在事件选择窗口,选择列筛选器

6、然后找到DataBaseID,选择等于,输入刚刚查询到的值,然后追踪运行即可

一在系统级别上设置sql跟踪

该方法优点:可以跟踪所有的oracle的后台进程所执行的sql,包括系统后台进程和用户进程,并且可以跟踪所有的 *** 作

缺点:跟踪所有的后台进程,跟踪信息量比较大

1在sqlplus中以sys/ as sysdba身份登陆到数据库。

2打开跟踪,在sqlplus中输入alter sysetem set events '10046 trace name context forever,level &level';

(其中&level可以输入1,4,8,12三个级别,不同的级别含有不同级别的信息)

3然后到ArcMap或ArcCatalog中进行你想跟踪的 *** 作

4关闭跟踪,在sqlplus中输入alter systemm set events '10046 trace name context off';

5查找你所跟踪的session的ID

A 修改时间格式:alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';

B对使用sde服务的输入:select sid,logon_time from v$session where username=&username and program='gsrvrexe';

C对直连这种方式输入:select sid,logon_time from v$session where username=&username and program='ArcCatalog';

select sid,logon_time from v$session where username=&username and program='ArcMap';

(其中&username是程序登陆到数据库的用户名,如果返回多个结果,在根据登陆的时间确定具体的sid值)

6执行以下的sql语句

SELECT dVALUE

|| '/'

|| LOWER (RTRIM (iINSTANCE, CHR (0)))

|| '_ora_'

|| pspid

|| 'trc' trace_file_name

FROM (SELECT pspid

FROM v$mystat m, v$session s, v$process p

WHERE mstatistic# = 1 AND sSID = &SID AND paddr = spaddr) p,

(SELECT tINSTANCE

FROM v$thread t, v$parameter v

WHERE vNAME = 'thread'

AND (vVALUE = 0 OR tthread# = TO_NUMBER (vVALUE))) i,

(SELECT VALUE

FROM v$parameter

WHERE NAME = 'user_dump_dest') d

在输入sid后,即得到后台的跟踪文件。

二 在session级别上设置跟踪

该方法只适用于跟踪登陆数据后所进行的一系列的 *** 作,比如跟踪在ArcCatalog中创建一个Dataset,FeatureClass等的 *** 作

1在sqlplus中以sys / as sysdba身份登陆到数据库

2查找你所要跟踪的session的sid和serial#

A 修改时间格式:alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';

B对使用sde服务的输入:select sid,serial#,logon_time from v$session where username=&username and program='gsrvrexe';

C对直连这种方式输入:select sid,serial#,logon_time from v$session where username=&username and program='ArcCatalog';

select sid,serial#,logon_time from v$session where username=&username and program='ArcMap';

(其中&username是程序登陆到数据库的用户名,如果返回多个结果,在根据登陆的时间确定具体的sid和serial#的值)

3开始跟踪,输入exec dbms_supportstart_trace_in_session(&sid,&serial#,true,true)(如果系统没有安装dbms_support包,可以执行$ORACLE_HOME\rdbms\admin\dbmssuppsql进行安装)

4然后到ArcMap或ArcCatalog中进行你想跟踪的 *** 作

5结束跟踪exec dbms_supportstop_trace_in_session(&sid,&serial#);

6执行以下的sql语句

SELECT dVALUE

|| '/'

|| LOWER (RTRIM (iINSTANCE, CHR (0)))

|| '_ora_'

|| pspid

|| 'trc' trace_file_name

FROM (SELECT pspid

FROM v$mystat m, v$session s, v$process p

WHERE mstatistic# = 1 AND sSID = &SID AND paddr = spaddr) p,

(SELECT tINSTANCE

FROM v$thread t, v$parameter v

WHERE vNAME = 'thread'

AND (vVALUE = 0 OR tthread# = TO_NUMBER (vVALUE))) i,

(SELECT VALUE

FROM v$parameter

WHERE NAME = 'user_dump_dest') d

在输入sid后,即得到后台的跟踪文件。

三 在Aix系统下跟踪消耗内存的session的办法

1在Aix系统上执行export TERM=vt100

2执行topas命令,确定最占cpu资源的process的进程号

3,然后利用select asid,bserial# from v$session a,v$process b where apaddr=baddr and bspid=&spid;

4确定sid和serial#后利用二方法进行跟踪。

点击右下角 -列筛选器-databasename 输入数据库名

或者 datebaseid 输入数据id --数据库id 可检索语句

select DB_ID('数据库名') 获取

以上就是关于研究下网页sql如何追踪。全部的内容,包括:研究下网页sql如何追踪。、SQL Server Profiler怎么跟踪指定数据库标识ID、如何打开oracle的sql后台跟踪功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存