oracle如何跟踪表 oracle跟踪sql语句

oracle怎样开启sql跟踪一.在系统级别上设置sql跟踪
该方法优点:可以跟踪所有oracle如何跟踪表的oracleoracle如何跟踪表的后台进程所执行的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中进行oracle如何跟踪表你想跟踪的操作
4.关闭跟踪,在sqlplus中输入alter systemm set events '10046 trace name context off';
5.查找oracle如何跟踪表你所跟踪的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='gsrvr.exe';
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 d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = https://www.04ip.com/post/0 OR t.thread# = TO_NUMBER (v.VALUE))) 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='gsrvr.exe';
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_support.start_trace_in_session(sid,serial#,true,true).(如果系统没有安装dbms_support包,可以执行$ORACLE_HOME\rdbms\admin\dbmssupp.sql进行安装)
4.然后到ArcMap或ArcCatalog中进行你想跟踪的操作
5.结束跟踪exec dbms_support.stop_trace_in_session(sid,serial#);
6.执行以下的sql语句
SELECT d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = https://www.04ip.com/post/0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_dump_dest') d
在输入sid后,即得到后台的跟踪文件 。
三. 在Aix系统下跟踪消耗内存的session的办法
1.在Aix系统上执行export TERM=vt100
2.执行topas命令oracle如何跟踪表,确定最占cpu资源的process的进程号
3,然后利用select a.sid,b.serial# from v$session a,v$process b where a.paddr=b.addr and b.spid=spid;
4.确定sid和serial#后利用二方法进行跟踪 。
oracle跟踪表oracle如何跟踪表你就是想知道你执行登陆后台数据库跑了那些sql对不,
这个好办,在改造项目oracle如何跟踪表的时候可以下,比如,一个CS版oracle如何跟踪表的软件,改成B/Soracle如何跟踪表的,如果你没有参与开发可以用下面的办法,
select sql_text, last_load_time,s.SQL_FULLTEXT
from v$sql s
where sql_text like '%换成前台你输入的东西%'
order by last_load_time desc
把你登录的用户名写上,多换几个,改对应的SQL,关键字位置,就可以抓出后台的SQL了,希望对你有帮忙,如有疑问,请继续,
Oracle 如何跟踪查询或程序执行的表记录?就像MS SQL的查询分析器(sql server profiler)有个软件工具叫SQLMonitor就是跟踪记录执行程序时所用的表及执行的语句,你下载个试试
oracle SQL跟踪,如何跟踪某个用户发出的所有SQL?需要打开oracle审计功能才能记录,并且消耗一定性能 。
简单打开审计如下
1、设置参数
alter system set audit_trail=db scope=spfile;
2、重启数据库
3、打开相应的审计(审计选项很多),如,对用户test对表操作的审计
audit table by test;
4、以dba查看审计记录
select * from dba_audit_trail;
如何查找ORACLE中的跟踪文件用toad 的工具可以进行跟踪 。查找toad的路径 右键属性 查找相应文件夹 然后 找寻同级目录下的 sql_monitor 这个工具就可以对 Oracle运行数据进行跟踪 。
oracle跟踪表结构,查看哪些表被更新的SQL我首先想到的是触发器(after类型) , 不过细琢磨了一下,似乎不那么靠谱,如果你要关注的表有几百张,那么难道建立几百个出发器么?
可能 , 仅仅是可能啊,这个不常用,因为比较消耗资源,你试试oracle的审计功能,大概这个能实现你的要求 。不过我用审计的次数有限,而且也没这么大规模的应用过,所以这部分只能你自己查了 。
【oracle如何跟踪表 oracle跟踪sql语句】关于oracle如何跟踪表和oracle跟踪sql语句的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读