有人能解释一下为什么我在java JDBC访问z/os DB2时看到这种行为吗?
我有一个包含三列的z/osXMLXML表,其中两列组成了db2索引,第三列是一个pureXML列,其中包含一个长度为1KByte的v10文档。
该表有一百万行。出于测试目的,每一行都有相同的xml文档。
当我运行一个对表进行10,000次随机读取的循环时,每次读取都会找到一行,我的jdbc跟踪文件中显示的db2服务器时间在2毫秒到62,000毫秒之间变化
是什么导致了如此大范围的响应时间?
另外,为什么我的jdbc跟踪的核心和网络时间为负?
[jcc][SystemMonitor:start]
[jcc][Time:2012-08-02-11:43:48.188][Thread:main][PreparedStatement@10b4b2f] executeQuery () called
[jcc][Time:2012-08-02-11:43:48.219][Thread:main][PreparedStatement@10b4b2f] executeQuery () returned com.ibm.db2.jcc.t4.j@812862
[jcc][SystemMonitor:stop] core: 22.185222ms | network: 21.831545ms | server: 2.956ms
[jcc][Time:2012-08-02-11:44:23.251][Thread:main][PreparedStatement@10b4b2f] executeQuery () called
[jcc][Time:2012-08-02-11:45:25.251][Thread:main][PreparedStatement@10b4b2f] executeQuery () returned com.ibm.db2.jcc.t4.j@68ef48
[jcc][SystemMonitor:stop] core: -3615.90705ms | network: -3616.401806ms | server: 61978.244ms
这是java/jdbc环境的详细信息。
[jcc] Driver: IBM Data Server Driver for JDBC and SQLJ 4.12.79
[jcc] Compatible JRE versions: { 1.6 }
[jcc] Target server licensing restrictions: { z/OS: enabled; SQLDS: enabled; iSeries: enabled; DB2 for Unix/Windows: enabled; Cloudscape: enabled; Informix: enabled }
[jcc] Range checking enabled: true
[jcc] Bug check level: 0xff
[jcc] Default fetch size: 64
[jcc] Default isolation: 2
[jcc] Collect performance statistics: false
[jcc] No security manager detected.
[jcc] Access to package sun.io is permitted by security manager.
[jcc] JDBC 1 system property jdbc.drivers = null
[jcc] Java Runtime Environment version 1.6.0_21
[jcc] Java Runtime Environment vendor = Sun Microsystems Inc.
[jcc] Java vendor URL = http://java.sun.com/
[jcc] Java installation directory = C:\Program Files\Java\jre6
[jcc] Java Virtual Machine specification version = 1.0
[jcc] Java Virtual Machine specification vendor = Sun Microsystems Inc.
[jcc] Java Virtual Machine specification name = Java Virtual Machine Specification
[jcc] Java Virtual Machine implementation version = 17.0-b17
[jcc] Java Virtual Machine implementation vendor = Sun Microsystems Inc.
[jcc] Java Virtual Machine implementation name = Java HotSpot(TM) Client VM
[jcc] Java Runtime Environment specification version = 1.6
[jcc] Java Runtime Environment specification vendor = Sun Microsystems Inc.
[jcc] Java Runtime Environment specification name = Java Platform API Specification
[jcc] Java class format version number = 50.0
[jcc] Operating system name = Windows XP
[jcc] Operating system architecture = x86
[jcc] Operating system version = 5.1
[jcc] File separator ("/" on UNIX) = \
[jcc] Path separator (":" on UNIX) = ;
[jcc] Dumping all file properties: { }
[jcc] pureQuery present = false
Database product name: DB2
Database product version: DSN10015
Driver name: IBM Data Server Driver for JDBC and SQLJ
Driver version: 4.12.79发布于 2014-08-27 09:26:44
z/OS拥有世界上最复杂的调度程序,可以对如何分配资源进行各种控制。out...this是硬件昂贵时代的遗物,企业想要控制这些稀缺资源的去向。
性能周期就是一个例子。这是一种可以为短时间运行的程序提供出色的响应时间,同时防止较长的进程占用资源的方法。在繁忙的系统上,琐碎的工作会立即运行,但大量资源用户的速度会变慢。这很容易成为你所看到的一部分。
尽管如此,涉及到的组件仍然有很多很多的variables...think :客户端程序、网络、LPAR虚拟机管理程序、z/OS /IP堆栈、DB2 -以及所有物理组件,如磁盘场、内存等。任何这些都会在响应时间上引入可变性。
IBM、CA和其他公司提供的非常复杂的性能监控产品将为您提供比您所希望的更多的详细信息。如果您的组织拥有这些工具中的任何一个,那么只需要一段时间,训练有素的人就会告诉您发生了什么。
发布于 2013-08-17 01:01:30
稍高于一分钟的等待感觉就像是在某处设置了一分钟的超时。有没有可能是你的应用程序没有分配足够的线程来发出请求(异步)?或者服务器中类似的超时- 10000顺序或并行请求对于任何db来说都是相当重的负载。
https://stackoverflow.com/questions/11776392
复制相似问题