【Salesforce 認定Platformデベロッパー】試験対策:第14問

問題

開発者は次の匿名コードブロックを実行します。

List <Account> acc =[SELECT Id FROM Account LIMIT 10]; 
Delete acc;
Database.emptyRecycleBin(acc);
system.debug(Limits.getDMLStatements() + '、' + Limits.getLimitDMLStatements());

結果は次の選択肢のうちのどれになりますか。

  • 2、150
  • 11、150
  • 150、2
  • 150、11

正解

  • 2、150
  • 11、150
  • 150、2
  • 150、11

解説

List <Account> acc =[SELECT Id FROM Account LIMIT 10]; 
Delete acc;
Database.emptyRecycleBin(acc);
system.debug(Limits.getDMLStatements() + '、' + Limits.getLimitDMLStatements());
  • Limits.getDMLStatements(): このメソッドは、現在のトランザクションで実行されたDML操作の数を返します。
    • Delete acc; この操作はDMLとして1回カウントされます。
    • Database.emptyRecycleBin(acc); この操作もDMLとして1回カウントされます。 従って、Limits.getDMLStatements() の返り値は2となります。
  • Limits.getLimitDMLStatements(): このメソッドは、単一のトランザクション内で許されるDML操作の最大回数を示します。
    • Salesforceにおける1トランザクション内のDML操作の上限は150回です。従って、Limits.getLimitDMLStatements() の返り値は150となります。

トランザクション: トランザクショととは、一連のデータ操作の単位であり、これらの操作はすべて成功するか、1つでも失敗した場合には全てが取り消される特性を持っています。データベースにおいて、これは密接に関連するデータの一まとめに行われる処理や、そのデータ自体を指します。

結論として、上記の匿名コードブロックのデバッグ出力は「2、150」となることが期待されます。

参考:Database クラス,Limits クラス,実行ガバナと制限

次の問題へ

前の問題へ

1問目から復習する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

コメント

コメントする

目次