当社の CRM 2011 データベースには、約 20000 件の連絡先があり、SDK を使用してそれらすべてをループする必要があります。現在、次の linq クエリの実行に非常に時間がかかることがわかりました。
Dim contactList = From c In orgService.ContactSet
Select New With {
Key .ContactId = c.ContactId,
Key .EMailAddress1 = c.EMailAddress1,
Key .ListIds = From l In c.listcontact_association Select l.ListId
}
ご覧のとおり、必要なのは、各連絡先のいくつかのフィールドと、関連付けられたマーケティング リスト ID のリストだけです。各連絡先結果内で (リスト ID を取得するために) 追加のクエリを実行しているため、おそらく時間がかかっていますか?
私は Linq にかなり慣れていないので、上記が実際の FetchXML 通信にどのように変換されるかわかりません。その情報を取得してクエリの実行時間を短縮するより効率的な方法はありますか?
詳細情報: CRM データベースを CreateSend データベースと同期するコードを作成しています。そのため、CS データベースに追加するだけでなく、リスト メンバーシップの変更を反映し、必要に応じて各連絡先のアクティビティやその他の情報を更新して、すべての連絡先レコードを確認する必要があります。同期処理は最終的に CRM サーバー自体で夜間に実行されるため、実行に時間がかかることが予想されますが、もちろんできるだけ効率的に実行したいと考えています。