Apex Data Loader を使用してレコードの挿入/削除を行っていますが、データが膨大になると時間がかかります。
これを実現する別の方法があれば教えてください。
Apex Data Loader を使用してレコードの挿入/削除を行っていますが、データが膨大になると時間がかかります。
これを実現する別の方法があれば教えてください。
mmix の答えは正しいです。最新のデータ ローダーを使用し、バルク API をオンにして、データを解放します。また、Informatica などのパートナーを使用することもできます。パートナーは、大規模な負荷の経験が豊富です。
内部では、バルク API がアップロードを (冗長な、バックアップされた) ディスクにストリーミングし、アップロード ジョブをキューに入れ、データベースにロードします (複数のバッチがある場合)。これは非常に高速で、1 時間に数百万件のレコードを処理できますが、速度はさまざまな理由で異なります。保証はありません。これは非同期 API です。
多くの Apex トリガまたはワークフローがある場合、または負荷に更新の共有 (所有権の変更など) が含まれる場合、これにより負荷が桁違いに遅くなる可能性があります。
読み込みが本当に遅い場合は、サポート ケースを提出して、パフォーマンス担当者の 1 人が負荷の経過を追跡し、どこで時間が費やされているかを確認することもできます。
それが役立つことを願っています。
force.com プラットフォームを使用できる場合は、使用できるBulk APIがあります。こちらの Dreamforce 09ノートも参照してください。
自分で行う場合は、BulkAPI または管理者設定データのインポート ([設定]、[管理者設定]、[データのインポート]、[ビジネス アカウントのインポート]) のいずれかを使用します。BulkAPI にはバッチごとに 10,000 行の制限があり、管理インポートにはアップロードごとに 50,000 行の制限があるため、データをスライスする必要があることに注意してください。
あるいは、データ ローダ外部アプリケーションの新しいバージョンは、新しい BulkAPI をサポートし、物事をスライスすることができます。データ ローダは、[管理] [設定] | [データ管理] の下の [設定] メニューからダウンロードできます。そこからインポートを実行し、アプリがデータをバッチにスライスできるようにします。
インポートが遅すぎる場合は、トリガー、重要でないワークフロー、およびアカウントの検証を一時的に停止してみてください。それ以外にできることはあまりありませんが、salesforceデータベースは直接的なデータベースではなく、実際のデータベースに永続化する前にすべてのデータを噛む必要がある抽象化レイヤーであり、常にパフォーマンスが低下することに注意してください.