1

一个进程正在对LOAD具有超过 50 万行的文件中的表执行操作。
onstat -k命令显示插入行的行锁,我认为这是正常的。
我看到的一些异常情况是onstat -u显示对该会话的巨大锁定的结果。

访问此表的其他进程也正在获取SQLERR -245

我的问题是为什么巨大的插入操作应该锁定表?它不应该只锁定行吗?表的默认锁定模式是row

Informix 版本是IDS 11.5

4

1 回答 1

1

您是否使用 DB-Access 来执行 LOAD?还有许多其他工具可以执行 LOAD,并且每个工具都有自己的实现——它实际上不是内置于 DBMS 本身的操作(我不会详细说明为什么会这样)。

您是否考虑过使用 DB-Load 代替?它的优点之一是它可以将大负载分解为可管理的事务——例如,它可以每加载 1000 行就提交一次。这极大地减少了锁定系统的压力。

您可能还想考虑 EXTERNAL TABLE 是否会提高加载性能。

于 2013-04-01T17:49:10.870 回答