- 浏览: 449524 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (233)
- 技术日志 (87)
- portal (7)
- jBPM/Activiti (34)
- Roller学习 (18)
- Java基础、网站开发 (19)
- 收藏URL (4)
- UML (3)
- linux操作 (7)
- 工作环境准备 (8)
- Mina (15)
- tomcat (8)
- Mylyn (3)
- sina网站 (2)
- 规则引擎 (3)
- 工作记录 (11)
- html(5) (9)
- 手机开发 (3)
- oracle (26)
- 常用的 (2)
- maven (8)
- hadoop (0)
- xml (7)
- 错误解决 (5)
- linux (1)
- c# (2)
- c++ (1)
- node.js (1)
- 银行业务知识 (1)
- Java调试 (0)
最新评论
-
tomcatmeng:
请问候选用户是怎样task自己的任务,看网上说先根据任务id先 ...
jBPM4.4:ForEach的使用--动态设置参与人数 -
maoweiwer:
友情提醒:如果是在MYSQL下创建数据库,则还需要更改\jbp ...
jBPM4.4: 创建数据库表 -
zybing:
ganjiang 写道有点疑惑,请lz指点,1.那个“depl ...
jBPM4.4:如何图示化显示当前的流程执行到了哪一步骤 -
zybing:
ganjiang 写道有点疑惑,请lz指点,1.那个“depl ...
jBPM4.4:如何图示化显示当前的流程执行到了哪一步骤 -
ganjiang:
有点疑惑,请lz指点,1.那个“deployId”不知是那个i ...
jBPM4.4:如何图示化显示当前的流程执行到了哪一步骤
方法1: 根据服务器processID获取执行的SQL语句
prompt 根据服务器processID获取执行的SQL语句 ACCEPT pid NUMBER prompt '输入服务器的进程编号: ' ; set serveroutput on set verify off declare sqltext varchar2(4000) ; Cursor c_GetSQLText is select sql_text from V$SQLTEXT_WITH_NEWLINES sqlwn, ( select s.sid, s.serial#, s.sql_address, s.sql_hash_value from v$process p, v$session s where p.addr = s.paddr and spid=&pid ) b where sqlwn.address = b.sql_address and sqlwn.hash_value = b.sql_hash_value order by piece asc; begin dbms_output.enable(1000000); dbms_output.put_line(' ------------------------------------ '); for r_indx in c_GetSQLText loop dbms_output.put( r_indx.sql_text); end loop; dbms_output.put_line(' '); dbms_output.put_line(' ------------------------------------ '); end; /
方法2: 跟踪用户当前的session,通过tkproc解析trace文件
首先查到在服务器上的processid,然后执行脚本,对该进程进行trace
通过 dbms_system.set_sql_trace_in_sessin(sid, serial#, true/false) 来进行
-- 首先查到用户的sid, serial#, 通过执行dbms_system.set_sql_trace_in_session(sid, serial#, true/false)来进行对用户session的跟踪。 -- 跟踪的结果写在usertrace目录中,通过tkprof可以将trace文件进行转换成用户可以阅读的格式; -- 如果跟踪的是Oracle后台进程,跟踪的结果是写在background_dump_dest中,而不是user_dump_dest ACCEPT spid NUMBER prompt '输入服务器的进程编号: ' ; set serveroutput on set verify off declare c_name INTEGER; ignore INTEGER; Cursor c_getSession is Select s.sid, s.serial#, s.username from v$session s , v$process p where p.spid = &spid and p.addr = s.paddr; trace_dir varchar2(2000); instance_name varchar2(2000); begin DBMS_OUTPUT.ENABLE(1000000); Select value Into trace_dir From v$parameter Where name='user_dump_dest'; Select value Into instance_name From v$parameter Where name='instance_name'; c_name := DBMS_SQL.OPEN_CURSOR; for r_indx in c_getSession loop DBMS_OUTPUT.PUT_LINE( 'User Name : ' || r_indx.username ); DBMS_OUTPUT.PUT_LINE( 'sid : ' || r_indx.sid ); DBMS_OUTPUT.PUT_LINE( 'serial# : ' || r_indx.serial# ); DBMS_SQL.parse( c_name, 'begin sys.dbms_system.set_sql_trace_in_session( ' || r_indx.sid || ' , ' || r_indx.serial# || ' , true ); end;' , DBMS_SQL.NATIVE ); ignore := DBMS_SQL.execute(c_name); DBMS_OUTPUT.PUT_LINE( ' Trace File Name : ' || trace_dir || '/' || instance_name || '_ora_' || &spid ||'.trc' ); end loop; DBMS_SQL.close_cursor(c_name); end; /
3. 通过Oracle事件方式进行
可以通过Oracle事件10046方式对用户session进行跟踪;
自己的
如果是自己了session,可以执行:
Alter Session set events '10046 trace name context forever, level 12'
关闭可以:
Alter Session set events '10046 trace name context off';
对其他用户session进行设置
通过dbms_system.set_ev来进行;
exec dbms_system.set_ev( sid, serial#, 10046, 级别1/4/8/12, '名字' );
关闭的话,只要把级别设置成0就可以了
-------------------------------------------------------------------------------------------------------------------
说明:
1. 在跟踪的时候,消耗的时间因素很重要,因此最好把timed_statistics设置成true
如果是自己的session ,可以 alter session set timed_statistics=true;
如果是别人的session ,可以 sys.dbms_system.set_bool_param_in_session( sid, serial#, 'timed_statistics', true);
2. 可以设置一下trace文件的大小
dbms_system.set_int_param_in_session( sid, serial#, 'max_dump_file_size', 大小为字节单位 )
3. 出来的结果,需要用tkprof进行分析,tkprof的使用可以见这里;
发表评论
-
查询某个字段都是字母
2017-02-07 14:33 644select * from (select case whe ... -
Oracle的全文检索
2016-08-09 15:43 486Oracle的全文检索,以前用过,效果还可以,就是耗资 ... -
eXtremeDB微秒级实时数据库简介
2011-10-26 13:47 1607eXtremeDB微秒级实时数据库简介 eXtreme ... -
【实践】对于绑定变量看执行计划
2011-05-12 14:41 1474基础: 从Oracle9i,开始的Bind ... -
【技术】执行计划 --- 几种方式
2011-05-12 14:30 1120看Oracle的执行计划: 1. 使用SQL_TRAC ... -
【脚本】trace当前最忙的进程
2011-05-11 15:31 950跟踪当前系统最忙的Oracle进程,生成trace文件, ... -
【技术】执行计划中的一些参数理解
2011-05-10 17:57 1243执行计划出来,有一 ... -
【脚本】获取当前最忙的进程的sql语句
2011-05-10 13:50 1690# # 获取当前最忙进程执行的SQL语句 # ... -
gongzuojilu
2011-05-09 13:10 01. 得出当前最忙客户再做什么 使用说明: ... -
【技术】Oracle跟踪事件的包括那些
2011-05-05 13:41 972以下的文章主要是对Oracle跟踪事件的具体描述, ... -
【技术】一个Oracle巡检工具
2011-05-04 15:32 1946Oracle巡检工具,不错的 -
【技术】找出oracle没有创建索引的外键
2011-05-04 14:59 2280/* Formatted on 2011 ... -
【实践】将无用的索引提取出来
2011-05-03 16:54 1032将无用的索引提取出来: 条件: 1. monitoring ... -
【技术】得到外键对应的索引MatchForeignKeyIndex
2011-05-03 15:27 971Create Or Replace FUNCTIO ... -
【实践】对v$object_usage的内容进行检查(2011.4月份进行统计的)
2011-05-03 15:18 1320重温一下监控的语句: alter inde ... -
SYS_CONTEXT可以获取的一些环境参数
2011-05-03 10:35 1096selectSYS_CONTEXT('USERENV', ... -
[转载]ORACLE中SQL TRACE和TKPROF的使用
2011-04-14 11:01 1372[转载]ORACLE中SQL TRACE和TKPROF的使 ... -
重温Oracle的进程
2011-04-14 09:48 1348在跟踪繁忙Oracle进程时,发现在 user_dump_de ... -
索引 -- 检查优化
2011-04-12 14:56 01、 索引的效率: 对索引进行分析: alte ... -
【实践】通过v$object_usage监控索引的使用情况
2011-04-12 11:37 1718v$object_usage可以用来监控系统中索引的使用 ...
相关推荐
很多时候我们可能会需要执行一段命令获取一个输出,遇到的比较典型的就是之前我们需要用 FFMpeg 实现视频的编码压缩水印等一系列操作,当时使用的是 FFMpegCore 这个类库,这个类库的实现原理是启动另外一个进程,...
在这里,我们使用了`SqlConnection`和`SqlCommand`对象来连接数据库和执行SQL语句。 知识点 1. C# WinForm应用程序的基本结构和组件。 2. 如何使用LinkLabel控件来导航不同界面。 3. 如何使用Form的Closing事件来...
可以查看SQL语句的执行情况:通过下方的AutoTrace窗口 ,看到SQL语句的实际执行结果和执行效率。 支持历史SQL(F8) :可以方便的查询以前执行过的SQL,不用反复重新输入。 可以执行匿名块,存储过程,从...
* 在 PL/SQL 语句块中,跳出循环体所用的语句是 EXIT。 数据库启动和关闭 * 数据库启动过程中,会在实例启动时读取参数文件。 * 数据库关闭时,首先需要卸载数据库。 * 数据库启动时,会读取控制文件。 数据库...
用DAO在数据库中执行SQL语句 在程序中创建ODBC数据源 第五章 VC实现Flash动画播放 VC实现WAV文件播放器 创建CD播放器 利用VC实现OPENGL编程 用playsound播放声音文件 用VC制作简单AVI文件播放器 第六章 获取网卡地址...
用DAO在数据库中执行SQL语句 在程序中创建ODBC数据源 第五章 VC实现Flash动画播放 VC实现WAV文件播放器 创建CD播放器 利用VC实现OPENGL编程 用playsound播放声音文件 用VC制作简单AVI文件播放器 第六章 获取网卡地址...
在PL/SQL语句块中,exit语句用于跳出循环体。 22. 数据库的默认启动选项是______。 答案:D、OPEN 数据库的默认启动选项是OPEN。 23. 关于控制文件,下列说法正确的是______。 答案:A、建议至少有两个位于不同...
* 捕获前N条SQL语句(topnsql),可以设置的值包括default、100、200等。 AWR报表的内容分析 AWR报表提供了大量的数据库性能信息,包括数据库的基本统计信息、活动会话记录、顾问建议、快照信息等。通过对AWR报表的...
Q0027 哪些SQL语句在执行时是自动提交的? 数据定义语言DDL是自动提交的。 Q0028 索引对数据库的影响? 提高查询速度 Q0029 主外键有什么关系? 外键是从某个表的一个字段指向另外一个表的主健字段,两个字段的类型...
我们可以通过 DriverManager 类和 Connection 接口来连接数据库,并执行 SQL 语句来操作数据库。 8. Java 中的 MVC 模式 Java 中的 MVC 模式是指一种软件架构模式,用于分离应用程序的逻辑层次。MVC 模式主要由三...
从技术实现思路上与streams几无相同之处,倒是逻辑standby与streams的实现方式非常想像,都是通过分析 redo生成重做的sql语句在目标端执行,如果要说差异的话,逻辑standby只提供了整库级的复制,从功能上来看...
8.2.2 执行SQL语句 274 8.2.3 事务控制:COMMIT、ROLLBACK、SAVEPOINT和SELECT FOR UPDATE 277 8.3 识别和管理PL/SQL对象 281 8.3.1 存储的与匿名的PL/SQL程序块 282 8.3.2 PL/SQL对象 282 8.4 监视和解决锁定...
8.2.2 执行SQL语句 274 8.2.3 事务控制:COMMIT、ROLLBACK、SAVEPOINT和SELECT FOR UPDATE 277 8.3 识别和管理PL/SQL对象 281 8.3.1 存储的与匿名的PL/SQL程序块 282 8.3.2 PL/SQL对象 282 8.4 监视和解决锁定...
28.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号 答:Select ID FROM table1 Where ...
[Q]怎么样在PL/SQL中执行DDL语句 6 [Q]怎么样获取IP地址 7 [Q]怎么样加密存储过程 7 [Q] 7 [Q] 7 [Q]如果存在就更新,不存在就插入可以用一个语句实现吗 8 [Q]怎么实现左联,右联与外联 9 [Q]怎么实现一条记录根据...
16.1.1 SQL语句分类 16.1.2 SELECT 16.1.3 INSERT 16.1.4 UPDATE 16.1.5 DELETE 16.1.6 CREATE 16.1.7 ALTER 16.1.8 DROP 16.2 MySQL概述 16.2.1 MySQL简介 16.2.2 下载并安装MySQL 16.2.3 MySQL使用 ...
答:声明式的事务管理主要是将在进行对数据库中数据的添加或者修改时需要执行事务管理,主要是为了避免在执行添加或修改的时候添加或修改不完全正确,导致数据丢失。spring使用AOP面向切面的思想进行事务管理的。 ...
10.5.3 捕获排序SQL语句 515 10.5.4 确定典型问题SQL 515 10.5.5 选择解决办法 517 10.5.6 进一步的调整优化 518 10.5.7 小结 520 10.6 一次横跨两岸的问题诊断 520 10.6.1 第一封求助邮件 520 10.6.2...