こんにちは、管理人の@Salesforce.Zです。
今日は実行ガバナと制限をメモします。書くと覚えがいいからです。
読んだら得ること
★ 実行ガバナと制限
目次
トランザクション単位の Apex 制限
説明 | 同期制限 | 非同期制限 |
---|---|---|
発行される SOQL クエリの合計数 | 100 | 200 |
SOQL クエリによって取得されるレコードの合計数 | 50,000 | |
Database.getQueryLocator によって取得されるレコードの合計数 | 10,000 | |
発行される SOSL クエリの合計数 | 20 | |
1 つの SOSL クエリによって取得されるレコードの合計数 | 2,000 | |
発行される DML ステートメントの合計数 | 150 | |
DML ステートメントの結果として処理されるレコードの合計数、Approval.process、または database.emptyRecycleBin | 10,000 | |
insert、update、または delete ステートメントによって繰り返しトリガする Apex 呼び出しのスタックの深さの合計数 | 16 | |
トランザクション内のコールアウト (HTTP 要求または Web サービスコール) の合計数 | 100 | |
トランザクション内のすべてのコールアウト (HTTP 要求または Web サービスコール) のタイムアウトの最大累積値 | 120 秒 | |
Apex 呼び出し 1 回につき許可される future アノテーションを持つメソッドの最大数 | 50 | |
System.enqueueJob によってキューに追加される Apex ジョブの最大数 | 50 | |
許可される sendEmail メソッドの合計数 | 10 | |
ヒープの合計サイズ | 6 MB | 12 MB |
Salesforce サーバの最大 CPU 時間5 | 10,000 ミリ秒 | 60,000 ミリ秒 |
Apex トランザクションごとの最大実行時間 | 10 分 | |
Apex トランザクションごとに許容される転送通知メソッドコールの最大数 | 10 | |
各転送通知メソッドコールで送信できる転送通知の最大数 | 2,000 |
親-子リレーションのサブクエリを使用する SOQL クエリでは、各親-子リレーションは追加クエリとしてカウントされます、これらのクエリタイプは、最上位クエリ数の 3 倍に制限されています。
サブクエリの制限は、Limits.getLimitAggregateQueries() が返す値に対応します。これらのリレーションクエリの行数は、全体のコード実行の行数に加算されます。この制限はカスタムメタデータ型には適用されません。
1 つの Apex トランザクション内で、カスタムメタデータレコードの SOQL クエリは無制限です。静的 SOQL ステートメントの他、次のメソッドへのコールは、要求内で発行された SOQL ステートメント数としてカウントされます。
次のメソッドへのコールは、要求内で発行された DML ステートメント数としてカウントされます
Approval.process
Database.convertLead
Database.emptyRecycleBin
Database.rollback
Database.setSavePoint
delete と Database.delete
insert と Database.insert
merge および Database.merge
undelete と Database.undelete
update と Database.update
upsert と Database.upsert
EventBus.publish
System.runAs