v$open_cursor中的相同record

之前在查看v$open_cursor的时候,发现很多相同的record。 让我很疑惑, sid saddr sql_id 都相同,我就想
这不是一个cursor吗? 那为什么在open_cursor中出现多次? 后来通过别人点拨明白了,这应该是一个相同的SQL语句被 session
打开了并运行了很多次。 当然,这里指的是java环境。 如果你在sqlplus 中运行同一个语句很多次 oracle是不会打开 多个同样的cursor的。
但是java jdbc编程的时候就不一样了。  java 的情形大致如下:


        ResultSet rs1=stmt.executeQuery(sql);
while(rs1.next())
System.out.print(rs1.getString("object_name")+" ");
ResultSet rs1=stmt.executeQuery(sql);
while(rs1.next())
System.out.print(rs1.getString("object_name")+" ");
ResultSet rs1=stmt.executeQuery(sql);
while(rs1.next())
System.out.print(rs1.getString("object_name")+" ");
while(rs1.next())
System.out.print(rs1.getString("object_name")+" ");

这里把一个语句打开了4遍并且没有关闭,这样在oracle里面就会出现4行相同的条目。

00000003C38D3A98        219 PNADMIN                        00000003B8786140 1708196829 6rpx3u1kx20yx select object_name from all_objects where rownum<2
00000003C38D3A98 219 PNADMIN 00000003B8786140 1708196829 6rpx3u1kx20yx select object_name from all_objects where rownum<2
00000003C38D3A98 219 PNADMIN 00000003B8786140 1708196829 6rpx3u1kx20yx select object_name from all_objects where rownum<2
00000003C38D3A98 219 PNADMIN 00000003B8786140 1708196829 6rpx3u1kx20yx select object_name from all_objects where rownum<2

不过测试的过程学到了很多东西。 比如 pargs pid可以查看一个java进程的参数。

比如设置classpath等。 这些明天再写。

时间: 2024-11-06 03:51:19

v$open_cursor中的相同record的相关文章

架构模式中的Active Record和Data Mapper

架构模式中的Active Record和Data Mapper 概念 在简单应用中,领域模型是一种和数据库结构一致的简单结构,对应每个数据库表都有一个领域类,在这种情况下,有必要让每个对象负责数据库的存取过程,这也就是Active Record(活动记录). 领域对象直接鱼数据库表进行交互,这带来了一个问题,随着领域逻辑变的更加复杂,它就慢慢转变成一个大的领域模型,简单的Active Record已经不能满足要求了. 领域类和表一对一匹配也开始随着把领域逻辑放入更小的类而失效.关系数据库无法处理

yii中使用active record进行关联显示

model中: view中:

yii2中使用Active Record模式

1. 在db.php中配置相应的数据库信息: return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=yii2basic', 'username' => 'root', 'password' => '', 'charset' => 'utf8', ]; 2. 使用gii模块来自动生成相应的代码(访问链接http://localhost/basic/web/index.php?

Kafka源码中的Producer Record定义

1.ProducerRecord 含义: 发送给Kafka Broker的key/value 值对 2.内部数据结构: -- Topic (名字) -- PartitionID ( 可选) -- Key[( 可选 ) -- Value 3.生产者记录(简称PR)的发送逻辑: <1> 若指定Partition ID,则PR被发送至指定Partition <2> 若未指定Partition ID,但指定了Key, PR会按照hasy(key)发送至对应Partition <3&g

Rails中重写Active Record字段属性

系统重构或升级时偶尔会碰到需要重写某个字段的情况,例如: 1. 读取user的name字段时,实际返回name_new字段 class User < ActiveRecord::Base def name attribute(:name_new) end end 2. 修改属性时做一些其他操作(这种场景也可以使用回调来实现) class User < ActiveRecord::Base def name=(value) # actions write_attribute(:name,valu

ios 数据持久化之magical record(基于coredata)

一个偶然的机会看到了magical record,就试了下,发现挺好用, Magic Record是Saul Mora写的一个开源的类库,目的是使得Core Data使用起来更加的便捷容易.这个库的开发灵感来自于Ruby on Rails(Web 应用程序框架)中的active record模式 具体安装步骤: http://blog.csdn.net/kuizhang1/article/details/21200367 具体使用: /*添加记录*/ Person*person = [Perso

Relax NG 在Odoo中的应用

想必有些同学一定会奇怪,Odoo是如何将模块中的XML中的诸如record.menuitem是如何被组织和定义的,以及各种field的各种属性究竟有哪些,今天,我们就来一探究竟. Relax NG:“可扩展标记语言的下一代正规语言”是一种基于语法的可扩展标记语言模式语言,可用于描述.定义和限制 可扩展标记语言(标准通用标记语言的子集)词汇表.简单地说 Relax NG是解释XML如何被定义的一套XML.Odoo就是通过定义了一套rng文件定义了自己一套xml框架结构,在模块被安装或者升级的时候将

学习动态性能表(13)--v$open_cursor

学习动态性能表 第13篇--V$OPEN_CURSOR  2007.6.8 本视图列出session打开的所有cursors,很多时候都将被用到,比如:你可以通过它查看各个session打开的cursor数. 当诊断系统资源占用时,它常被用于联接v$sqlarea和v$sql查询出特定SQL(高逻辑或物理I/O).然后,下一步就是找出源头.在应用环境,基本都是同一类用户登陆到数据库(在V$SQLAREA中拥有相同的PARSING_USER_ID),而通过这个就可以找出它们的不同.V$SQLARE

ZP的EXTJS学习笔记(三)——邮箱功能的开发(按钮事件、下拉框、分页、record小图标、整条数据格式处理、定时刷新、record复选删除、分组)

照例,先贴效果图: 本人比较满意,短时间开发的邮箱功能,这是收件箱,还有配套的发件箱与删除箱. 简单说下思路: 1.配置model.store,用的是MVC模式,可参考第一篇学习笔记. 2.页面简单布局: Ext.define('KitchenSink.view.mail.InBox', { extend: 'Ext.grid.Panel', alias : 'widget.inbox', xtype: 'inbox', autoHeight:true, bodyStyle:'width:100