Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
一个进程正在对LOAD具有超过 50 万行的文件中的表执行操作。 onstat -k命令显示插入行的行锁,我认为这是正常的。 我看到的一些异常情况是onstat -u显示对该会话的巨大锁定的结果。
LOAD
onstat -k
onstat -u
访问此表的其他进程也正在获取SQLERR -245
SQLERR
-245
我的问题是为什么巨大的插入操作应该锁定表?它不应该只锁定行吗?表的默认锁定模式是row
row
Informix 版本是IDS 11.5
IDS 11.5
您是否使用 DB-Access 来执行 LOAD?还有许多其他工具可以执行 LOAD,并且每个工具都有自己的实现——它实际上不是内置于 DBMS 本身的操作(我不会详细说明为什么会这样)。
您是否考虑过使用 DB-Load 代替?它的优点之一是它可以将大负载分解为可管理的事务——例如,它可以每加载 1000 行就提交一次。这极大地减少了锁定系统的压力。
您可能还想考虑 EXTERNAL TABLE 是否会提高加载性能。