- 浏览: 1018485 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (529)
- 服务器 (8)
- jsp (1)
- java (6)
- AIX (1)
- solaris (3)
- linux学习 (53)
- javaScript (2)
- hibernate (1)
- 数据库 (74)
- sql语句 (8)
- oracle 学习 (75)
- oracle 案例 (42)
- oracle 管理 (42)
- Oracle RAC (27)
- oracle data guard (12)
- oracle 参数讲解 (14)
- Oracle 字符集 (8)
- oracle性能调优 (24)
- oracle备份与恢复 (12)
- oracle Tablespace (9)
- oracle性能诊断艺术 (1)
- oracle 11g学习 (5)
- oracle streams (1)
- oracle upgrade and downgrade (4)
- db2学习 (13)
- db2命令学习 (2)
- mysql (28)
- sql server (30)
- sql server 2008 (0)
- 工具 (10)
- 操作系统 (3)
- c++ (1)
- stock (1)
- 生活 (5)
- HADOOP (2)
最新评论
-
massjcy:
...
如何将ubuntu文件夹中文名改为英文 -
skypiea:
谢谢。。。
终于解决了。。。
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262) -
qwe_rt:
引用vi /etc/sysconfig/network 请问 ...
Linux操作系统下配置静态IP上网 -
liuqiang:
sudo killall -9 apache2
ps 和 kill 命令详解 -
dazuiba:
引用*绝杀 kill -9 PID 当使用此命令时,一定要通过 ...
ps 和 kill 命令详解
DBMS_APPLICATION_INFO是一个非常有用的程序包,他提供了通过V$SESSION
跟踪脚本运行情况的能力,该包允许你在v$session中的如下三列中填值:
CLIENT_INFO,MODULE,ACTION,该包不仅提供了设置这些列值的过程,还提供了
返回这些列值的过程,在CLIENT_INFO列中适合存放允许你的程序的客户端信息,
MODULE列适合存放你的主程序名,如包的名称,ACTION列适合存放你的程序包中
的过程名,现在我们先简单了解一下DBMS_APPLICATION_INFO的和V$session相关
的函数:
dbms_application_info.set_client_info:允许你向v$session中写入你的客户端的信息
dbms_application_info.set_module:允许你向v$session中写入你的主程序(如包)
和你的过程的名称
dbms_application_info.read_client_info:允许你从v$session中读取客户端的信息
dbms_application_info.read_module:允许你从v$session中读取主程序(如包)
和你的过程的名称
看一个简单的例子:
SQL> set serveroutput on
SQL>
SQL> DECLARE
2 l_clinent VARCHAR2(100);
3 l_mod_name VARCHAR2(100);
4 l_act_name VARCHAR2(100);
5 BEGIN
6 dbms_application_info.set_client_info('my client');
7 dbms_application_info.read_client_info(l_clinent);
8 dbms_output.put_line('client='||l_clinent);
9 dbms_application_info.set_module('my mod','inserting');
10 FOR i IN 1..100
11 LOOP
12 execute immediate 'INSERT INTO pp_test(c1) VALUES(:X)' USING i;
13 END LOOP;
14 dbms_application_info.read_module(l_mod_name,l_act_name);
15 dbms_output.put_line('mod_name='||l_mod_name);
16 dbms_output.put_line('act_name='||l_act_name);
17 END;
18
19 /
client=my client
mod_name=my mod
act_name=inserting
PL/SQL procedure successfully completed
SQL> commit;
Commit complete
SQL> select sid from v$mystat where rownum=1;
SID
----------
1065
SQL> SELECT sid,serial#,client_info,MODULE,action FROM v$session WHERE sid=1065;
SID SERIAL# CLIENT_INFO MODULE ACTION
---------- ---------- ---------------------------------------------------------------- ------------------------------------------------ --------------------------------
1065 18968 my client my mod inserting
再看一个更有用的例子:
1.首先我们构建一个有大量数据的表:
SQL> DELETE FROM pp_test;
1320 rows deleted
SQL> insert into pp_test(c1) select object_name from all_objects;
116441 rows inserted
SQL> insert into pp_test(c1) select c1 from pp_test;
116441 rows inserted
SQL> insert into pp_test(c1) select c1 from pp_test;
232882 rows inserted
SQL> insert into pp_test(c1) select c1 from pp_test;
465764 rows inserted
SQL> commit;
Commit complete
2.我们现在需要更新PP_TEST表的C1列,在脚本执行过程中我们需要知道
已经处理的行数和已经花费的时间,执行结束后,我们需要知道处理的
总的行数和执行的总时间,使用如下代码:
--在session1中执行:
DECLARE
CURSOR cur_test IS
SELECT c1,ROWID
FROM pp_test;
l_new_c1 VARCHAR2(2000);
l_count_num PLS_INTEGER := 0;
l_start_time_num PLS_INTEGER;
BEGIN
l_start_time_num := DBMS_UTILITY.GET_TIME;
FOR cur_test_rec IN cur_test LOOP
l_count_num := l_count_num + 1;
l_new_c1 := cur_test_rec.c1||'_NEW';
UPDATE pp_test
SET c1 = l_new_c1
WHERE rowid = cur_test_rec.ROWID;
IF MOD(l_count_num, 1000) = 0 THEN
DBMS_APPLICATION_INFO.SET_MODULE('Records Processed: ' ||
l_count_num, 'Elapsed: ' || (DBMS_UTILITY.GET_TIME -
l_start_time_num)/100 || ' sec'); --每更新1000行,记录一次执行时间
END IF;
END LOOP;
COMMIT;
DBMS_APPLICATION_INFO.SET_MODULE('Records Processed: ' ||
l_count_num, 'Elapsed: ' || (DBMS_UTILITY.GET_TIME -
l_start_time_num)/100 || ' sec'); --更新结束,记录总的执行时间
END;
执行过程中我们可以查询v$session,如下所示:
SQL> SELECT sid,serial#,client_info,MODULE,action FROM v$session WHERE sid=307;
SID SERIAL# CLIENT_INFO MODULE ACTION
---------- ---------- ---------------------------------------------------------------- ------------------------------------------------ --------------------------------
307 36536 Records Processed: 360000 Elapsed: 18.69 sec
SQL> SELECT sid,serial#,client_info,MODULE,action FROM v$session WHERE sid=307;
SID SERIAL# CLIENT_INFO MODULE ACTION
---------- ---------- ---------------------------------------------------------------- ------------------------------------------------ --------------------------------
307 36536 Records Processed: 626000 Elapsed: 32.99 sec
SQL> SELECT sid,serial#,client_info,MODULE,action FROM v$session WHERE sid=307;
SID SERIAL# CLIENT_INFO MODULE ACTION
---------- ---------- ---------------------------------------------------------------- ------------------------------------------------ --------------------------------
307 36536 Records Processed: 837000 Elapsed: 44.56 sec
执行结束,我们再次查询v$session:
SQL> SELECT sid,serial#,client_info,MODULE,action FROM v$session WHERE sid=307;
SID SERIAL# CLIENT_INFO MODULE ACTION
---------- ---------- ---------------------------------------------------------------- ------------------------------------------------ --------------------------------
307 36536 Records Processed: 931528 Elapsed: 49.86 sec
SQL>
发表评论
-
sqlldr总结参数介绍
2012-06-28 14:29 22813有效的关键字: userid -- ORACLE use ... -
11gR2新特性:STANDBY_MAX_DATA_DELAY
2011-12-27 11:18 1203Active Data Guard 是 Oracle 11g ... -
Linux下用OCCI或OCI连接Oracle
2011-07-26 12:00 2895首先,去oracle官网下载C ... -
Oracle Mutex实现机制
2011-05-18 23:43 1061我们都知道Latch是Oracle ... -
local_listener参数作用
2011-05-10 17:19 1918pmon只会动态注册port等于1521的监听,否则 ... -
oracle伪列 rowid和rownum
2011-03-23 10:00 3528整理ROWID一 一,什么是伪列RowID?1,首先是一种数 ... -
Oracle10gR2 主备自动切换之客户端Failover配置
2011-01-20 10:32 9471. 主库检查和设置假设新增的服务名为ORCL_TAF.LK. ... -
Oracle10g配置Dataguard的相关参数解释
2011-01-20 10:24 1263参考自 http://space.itpub.ne ... -
wrap加密oracle包
2011-01-19 11:52 1295大家都知道oracle的很多系统包是没法看它的源码的,orac ... -
利用hcheck检查数据字典一致性状态
2011-01-17 17:42 1809利用hcheck可以检查oracle数据字典的一致性状态,主要 ... -
插入相同的数据量普通表和临时表产生的redo对比
2011-01-17 16:08 984往临时表里插入相同量 ... -
Database Link与GLOBAL_NAMES参数
2011-01-12 13:36 1025当GLOBAL_NAMES参数设置为TRUE时,使用DATAB ... -
Oracle Streams学习二(清除流配置)
2011-01-09 23:34 1178在完成streams部署之后,如果需要重新配置或舍弃配置,可以 ... -
red hat enterprise 下完全删除oracle 数据库
2011-01-05 01:28 1755步骤 1 以oracle用户登录主、备节点。步骤 2 ... -
Oracle常用dump命令
2010-12-20 00:31 827Oracle常用dump命令,记录一下备查。 一.M ... -
oracle执行DML(事物过程)的深入研究(二)
2010-12-14 15:02 1533接上一节的 oracle执行DML(事物过程)的深入研究(一) ... -
oracle执行DML(事物过程)的深入研究(一)
2010-12-14 10:26 2799用户所执行 DML (即执行事务)操作在 Oracle 内部按 ... -
Oracle基本数据类型存储格式研究(二)—数字类型
2010-12-14 00:35 1467数字类型包含number,intege ... -
Oracle基本数据类型存储格式研究(一)—字符类型
2010-12-13 23:32 11661.char char是定长字符型,内部代码是:96,最多可 ... -
关于oracle rowid的一些内容 -- 转载
2010-12-13 15:47 777本文讨论的是关于oracle ...
相关推荐
15. **DBMS_APPLICATION_INFO**: 用于设置和查询应用程序上下文信息,帮助追踪和监控用户会话。 16. **DBMS_REDEFINITION**: 在线重定义表,允许在不中断应用的情况下更改表结构。 17. **DBMS_CRYPTO**: 提供加密...
`DBMS_APPLICATION_INFO.SET_CLIENT_INFO`设置客户端信息,`DBMS_APPLICATION_INFO.READ_CLIENT_INFO`读取信息。 14. **DBMS_SPACE**: 监控和管理数据库空间,如计算表空间和段的使用情况。`DBMS_SPACE.SPACE_USAGE...
《DBMS_Sample:数据库管理系统实例与API应用详解》 在信息技术领域,数据库管理...通过学习这些内容,开发者不仅可以深化对DBMS的理解,还能熟练掌握在移动设备上使用DBMS API进行数据操作的技巧,从而提升开发能力。
本文将详细讨论如何使用Package(PCK)直接生成XML数据文件,特别关注使用`dbms_xmlgen.getXML()`过程的方法。 Oracle的`dbms_xmlgen`包提供了生成XML文档的功能,它能够将数据库查询结果转换成XML格式。在描述中...
可以使用数据库的日志功能记录输出结果,或者直接通过`DBMS_OUTPUT`查看响应。 #### 结论 通过以上介绍,我们可以看到`UTL_HTTP`工具包为Oracle环境下的HTTP交互提供了丰富的功能和支持。无论是简单的GET请求还是...
DBMS_APPLICATION_INFO 包为用户提供了一个强大的机制来交换环境中执行处理的时间点信息。通过这种方式,可以在长时间运行的 PL/SQL 程序中实时地监控进度,例如每处理一定数量的数据就更新一次进度信息。 **示例**...
- 使用`DBMS_WORKLOAD_REPOSITORY`包来查询AWR数据,如`DBMS_WORKLOAD_REPOSITORY.REPORT_SQL_MONITOR`函数可以生成特定SQL语句的性能报告。 - **2.1.2 SPA(SQL Performance Analyzer)** - SPA是一个强大的工具...
因此,在Oracle 8i及更高版本中,可以通过使用`DBMS_PIPE`包来实现在存储过程中执行OS命令的功能。 #### DBMS_PIPE 包简介 `DBMS_PIPE`包提供了在Oracle进程中创建和管理管道的能力,允许两个或多个Oracle进程之间...
- **DBMS_APPLICATION_INFO**:这个包允许开发者设置和查询应用级别的信息,如应用名称、模块名称和动作名称,这对于跟踪和监控系统性能非常有用。 - **DBMS_AQ**(Advanced Queuing):提供消息队列服务,支持...
2. DBMS_JOB和DBMS_SCHEDULER包的特点和使用场景。 3. 在RAC环境中如何指定job运行的实例级别。 4. 如何获取RAC集群中所有节点的IP地址。 5. Oracle系统视图的使用以及获取存储设备相关信息的命令。 6. 如何优化和...
开发人员可以通过PL/SQL包DBMS_APPLICATION_INFO设置这些信息。服务名称则由连接字符串确定,未指定服务的会话将关联到sys$users服务。 启用跟踪的过程可以分为几个步骤。首先,可以设定user_dump_dest参数来指定...
DBMS_LOGMNR是Oracle数据库提供的一个包,用于分析重做日志文件(redo logs),以获取数据库的事务历史信息。这个包中的常量选项是DBMS_LOGMNR的参数,用于定制LogMiner的行为。以下是一些重要的常量选项及其详细...
在Oracle中,PL/SQL API通常表现为一组预定义的包,例如DBMS_OUTPUT用于调试,DBMS_ALERT用于异步通知,DBMS_LOCK用于锁定机制,DBMS_JOB用于计划任务等。这些包提供了丰富的功能,允许开发者执行各种数据库操作,而...
1. 创建ACL(访问控制列表):使用`DBMS_ACL`包创建一个ACL,指定允许的网络地址和协议。 2. 将用户与ACL关联:使用`DBMS_ACL_ADMIN`包将特定的数据库用户添加到ACL中,赋予他们网络访问权限。 3. 应用ACL到网络资源...
《IT文档\dbms\Oracle》系列,主要记录了一位DBA在工作中遇到的问题与解决方案,以日记的形式展现了Oracle数据库管理的日常。Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统,其复杂性和灵活性使得DBA的...
应用程序可以使用 `DBMS_SCHEDULER.SIGNAL` 过程抛出事件,这些事件可以被 Job 监听。 #### 六、使用 Chains Chain 是一系列有序的任务集,可以定义任务间的依赖关系。创建 Chain 时,可以指定任务的执行顺序。 *...
- **CLIENT_INFO**: 由`DBMS_APPLICATION_INFO`包设置的客户信息。 - **ACTION**: 由`DBMS_APPLICATION_INFO`包设置的动作信息。 - **MODULE**: 由`DBMS_APPLICATION_INFO`包设置的应用模块信息。 7. **其他重要...
- 示例:`PROCEDURE get_employee_details(p_employee_id IN NUMBER, p_employee_info OUT EMPLOYEE_INFO);` **2.2.3 变量是表的字段** - 当变量表示表中的单个字段时,应使用相应的数据类型。 - 示例:`DECLARE v_...