Salesforce の設定
ほとんどの処理はデータベース内で実行されます。これらのパラメータを正しく設定することで、データベースの処理を高速化するのに役立ちます。
-
MRU 機能を有効または無効にする。MRU (Most Recently Used) のマークが付けられたレコードは、Salesforce ユーザインターフェースのサイドバーの [最近使ったデータ] セクションにリストされます。不要な場所でコールを有効にしていないことを確認してください。API バージョン 7.0 以降では、MRU 機能はデフォルトで無効になっています。MRU 機能を有効にするには、MruHeader を作成して updateMru を true に設定します。次のサンプルは、MRU 機能の使用方法を示しています。
1public void mruHeaderSample() { 2 connection.setMruHeader(true); 3 Account account = new Account(); 4 account.setName("This will be in the MRU"); 5 try { 6 SaveResult[] sr = connection.create(new SObject[]{account}); 7 System.out.println("ID of account added to MRU: " + 8 sr[0].getId()); 9 } catch (ConnectionException ce) { 10 ce.printStackTrace(); 11 } 12}
-
共有ルールを避けるために、「すべてのデータの編集」権限を持つユーザとしてログインする。共有ルールによってデータへのアクセスを許可されたユーザとしてのログインでは、API はアクセスを確認する追加のクエリを発行する必要があります。それを避けるには、「すべてのデータの編集」権限を持つユーザとしてログインします。通常、共有ルールが少ないほど所有者などのプロパティを設定する処理が少なくて済むため、読み込み速度が早くなります。
あるいは、読み込み時間という点から、オブジェクトによっては組織の共有設定として公開/参照・更新可能などを設定することができます。詳細は、Salesforce オンラインヘルプの「組織の共有設定の設定」を参照してください。
- ワークフローまたは割り当てルールを避ける。操作後のアクションが必要な処理はすべて読み込みに時間がかかります。読み込まれたオブジェクトに適用されない場合、自動ルールを一時的に無効にすることもできます。
- カスケード更新のトリガを避ける。たとえば、取引先の所有者を更新した場合、その取引先に関連付けられた取引先責任者と商談にも更新が必要です。単一のオブジェクトを更新する代わりに、クライアントアプリケーションは複数のオブジェクトにアクセスしなければならず、読み込みが遅くなります。
Lightning プラットフォームデータローダは、データ読み込みのよい参考となります。MRU を無効にし、HTTP/1.1 永続接続を使用し、要求とレスポンスに GZIP 圧縮を使用します。データ読み込みを行う場合、または独自の Java インテグレーションを記述する際にどこから始めればよいか分からない場合、Lightning プラットフォームデータローダを使用し高速で安定したソリューションを実現することができます。Lightning プラットフォームデータローダについての詳細は、Salesforce オンラインヘルプの「データローダ」を参照してください。