首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

sys_uuid()罗致oracle的session缓慢增长

2012-08-30 
sys_uuid()导致oracle的session缓慢增长最近负责的数据交换平台性能测试,发现数据库连接有缓慢增长的现象,

sys_uuid()导致oracle的session缓慢增长

最近负责的数据交换平台性能测试,发现数据库连接有缓慢增长的现象,通过调试发现是oracle的sys_uuid()方法导致的,感觉非常奇怪,只好先将sys_uuid()改成java里的uuid生成方法,详细说明如下:

?

软件环境:

java jdk1.4.2/Red Hat 3.4.6-2

oracle 9i/Red Hat 3.4.6-2

oracle驱动采用的是ojdbc14.jar

?

通过如下方法查询oracle 的 session 连接占用:

select count(1)
? from v$session v
?where v.USERNAME = 'EDIENTJOIN'
?? and v.MACHINE = 'web'
?? and v.OSUSER = 'mqm'

?

java程序的原来的调用方法是:

String insertSql = "INSERT INTO EDI_ALARM_RESPONSE(ALARM_RESPONSE_ID,ALARM_REQUEST_DETAIL_ID,ALARM_TYPE,QUANTITY,CREATE_TIME) VALUES "
????+ "(SYS_GUID(),?,?,?,SYSDATE)";

?

后续改成:

String insertSql = "INSERT INTO EDI_ALARM_RESPONSE(ALARM_RESPONSE_ID,ALARM_REQUEST_DETAIL_ID,ALARM_TYPE,QUANTITY,CREATE_TIME) VALUES "
????+ "(?,?,?,?,SYSDATE)";

?

第一个参数采用如下方式取值:

String uuid = UUIDKeyGenerator.getInstance().generateKey();//公司框架子封装的方法,貌似新版的jdk里提供类似的方法

?

?

热点排行