我有在linux中运行的DB2数据库11.5版本
我正在尝试测量大型更新的速度-每次更新1000000行。示例:
UPDATE test.test1 SET col1= 'X'||col2||'A';
问题是每次执行此更新的时间都非常不同
时间从2.2秒到7.8秒不等。
每次运行更新时,我该如何保持时间一致?
附加信息:
- 运行db2的服务器不做任何其他事情,而我是数据库中唯一的会话,所以它一定是一些与db2相关的行为
- 表上没有索引/约束/触发器/FK
- 该表的完整结构为:
CREATE TABLE "TEST"."TEST1" (
"COL1" VARCHAR(128 OCTETS) NOT NULL ,
"COL2" VARCHAR(128 OCTETS) NOT NULL ,
"COL3" VARCHAR(128 OCTETS) NOT NULL )
IN "USERSPACE1" ORGANIZE BY ROW
这一开始只是一条评论,但后来似乎值得作为一个答案。DB2实例的性能不仅取决于DB2中运行的进程(如触发器、其他会话等(,还取决于运行DB2的操作系统上运行的其他进程。您看到的性能上的细微差异可以很容易地通过DB2之外的其他进程对操作系统的需求来解释。因此,您可能需要加载操作系统探查器,并观察DB2中每次更新测试期间发生的情况。