問題
開発者は次の匿名コードブロックを実行します。
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となります。
- Salesforceにおける1トランザクション内のDML操作の上限は150回です。従って、
※トランザクション: トランザクショととは、一連のデータ操作の単位であり、これらの操作はすべて成功するか、1つでも失敗した場合には全てが取り消される特性を持っています。データベースにおいて、これは密接に関連するデータの一まとめに行われる処理や、そのデータ自体を指します。
結論として、上記の匿名コードブロックのデバッグ出力は「2、150」となることが期待されます。
参考:Database クラス,Limits クラス,実行ガバナと制限
次の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第15問
問題 カスタム例外「RecordNotFoundException」は、次のブロックコードによって定義されます。 public class RecordNotFoundException extends Exception() { } 開発者…
前の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第13問
問題 Universal Containers社は、注文管理アプリケーションを実装しました。各注文は1つ以上の注文明細項目を持つことができます。注文明細オブジェクトは、主従関係を…
1問目から復習する
【Salesforce 認定Platformデベロッパー】試験対策:第1問
問題 デバッグログに書き込まれるときのxの値は何ですか。 Integer x = 0; do { x = 1; x++; } while (x < 1); System.debug(x); 0 1 2 3 正解 0 1 2 3 解説 デバッ…
コメント