1

プロセスはLOAD、5 万行を超えるファイルのテーブルに対して操作を実行しています。
onstat -kコマンドは、挿入された行の行ロックを表示しますが、これは正常だと思います。
私が見る異常な点は、onstat -uこのセッションに対して巨大なロックを示す結果です。

このテーブルにアクセスする他のプロセスも取得していますSQLERR -245

私の質問は、巨大な挿入操作がテーブルをロックする必要があるのはなぜですか? 行だけをロックするべきではありませんか?テーブルのデフォルトのロック モードはrow

Informix のバージョンはIDS 11.5

4

1 に答える 1

1

DB-Access を使用して LOAD を実行していますか? LOAD を実行できるツールは他にも多数あり、それぞれに独自の実装があります。実際には、これは DBMS 自体に組み込まれた操作ではありません (その理由の詳細については説明しません)。

代わりに DB-Load の使用を検討しましたか? その利点の 1 つは、大きな負荷を管理しやすいトランザクションに分割できることです。たとえば、1000 行が読み込まれるたびにコミットできます。これにより、ロックシステムへの負担が大幅に軽減されます。

また、EXTERNAL TABLE によってロード パフォーマンスが向上するかどうかを検討することもできます。

于 2013-04-01T17:49:10.870 に答える