Salesforce 認定 Platform Data アーキテクト 無料問題 9 / 10 ・ 分野5: 大量データに関する考慮事項
古いケース200万件を、ごみ箱に入る通常の削除で消した。消したあとも、ケースのレポートやリストビューは思ったほど速くならない。LDV のベストプラクティスの削除の説明に合う見方はどれか。
- ごみ箱にあるレコードはクエリの対象から外れているので、性能には何の影響も与えない
- ごみ箱に入ったレコードは、利用者がごみ箱を空にするまで、いつまでもデータベースに残る
- 消したレコードは削除の印が付いたまま残り、クエリから外す処理も要るので性能に響く
- 削除したレコードはその場でデータベースから取り除かれるので、遅さの原因は別にある
正解と解説を見る
正解: C
正解の理由
LDV のベストプラクティスは、Salesforce の削除はごみ箱の考え方をとり、削除されたデータを取り除くのではなく、削除の印を付けてごみ箱から見えるようにすると書く。これを論理削除(soft deletion)と呼ぶ。論理削除の間もデータはデータベースに残り、削除したレコードをクエリから外す処理も要るので、性能に影響する。大量のデータを消すときは、ごみ箱を通さずにすぐ削除の対象にできる Bulk API 2.0 の完全削除(hard delete)を使うよう勧めている。
違う選択肢
「削除したレコードはその場でデータベースから取り除かれるので、遅さの原因は別にある」… ガイドは、Salesforce は削除されたデータを取り除くのではなく、削除の印を付けてごみ箱から見えるようにすると書く。データベースにはまだ残っている。
「ごみ箱にあるレコードはクエリの対象から外れているので、性能には何の影響も与えない」… ガイドは、印の付いたデータはまだ残っているので性能に影響し、削除したレコードをどのクエリからも外す処理も要ると書く。
「ごみ箱に入ったレコードは、利用者がごみ箱を空にするまで、いつまでもデータベースに残る」… ガイドは、決まった日数がたったとき、ごみ箱が決まった大きさに達したとき、画面・API・Apex でごみ箱を空にしたときに、データベースから完全に削除されると書く。
つまずき方
画面で見えなくなったことと、データベースから消えたことは同じではない。大量に消したあとに性能を戻したいなら、どの削除の方法で消したかを確かめる。