Sybase ASE 15.0.2 にアクセスするアプリケーションで作業しています。現在のコードはリモート データベース (CIS) にアクセスし、プロキシ テーブル定義を使用して行を挿入します (宛先テーブルは DOL - DRL テーブル - PK 行が定義されています)。アイデンティティとして、常に成長しています)。現在のコードは、選択を実行して行が既に存在するかどうかを確認し、重複データの挿入を回避します。
リモート テーブルにもテーブルに PK 定義があるため、行をコミットする前に PK 検証が再度行われることを理解しています。選択チェックは PK 検証によって再び効果的に行われるため、削除する予定ですが、多くの重複を含むファイルを受信した場合、データをコミットしようとしたときに、テーブルが不必要な競合に苦しむ可能性があるのではないかと心配しています。
Sybase ASEが最後の行を保持しようとし、重複をチェックする前にデータを書き込むかどうかはわかりません。また、テーブルが非常に大きい場合、インデックス全体を調べて重複を見つけるのにかかる時間についても心配しています。
次のリンクhttp://dcx.sybase.com/1200/en/dbusage/insert-how-transact.htmlで SQL のドキュメントを見つけましたが、ASE ではありません。
私が見つけることができる最高のものは、次の説明です
https://groups.google.com/forum/?fromgroups#!topic/comp.databases.sybase/tHnOqptD7X8
ただし、行がどのようにロックされているか (および、PK チェックの前または同時に書き込むための最適化があるかどうか) については詳しく説明していません。 PK がコミットされた最後の行よりも正に大きい行
ありがとう
アレックス