コラム詳細

Salesforceの「ガバナ制限」とは?概要や回避方法を解説!

2023年09月20日

  • Salesforce

はじめに
セラクCCCのSalesforce推進部のNです。さまざまなクラウド型サービスが登場し、それを利用する企業や団体などが急速に増えているのにともない、サーバリソースの喰い合いが問題となるケースが増えてきました。Salesforceもクラウド型サービスの1つのため、状況は同じです。そのためSalesforceには、一定以上のリソースの偏りを防ぐための「ガバナ制限」が設定されています。そこで今回は、Salesforceのガバナ制限の概要や種類と、その対応策について解説します。ガバナ制限とは何なのか、どうすれば制限を回避できるかについて知りたい担当者様は必読です。
 

また、Salesforceの活用についてアンケートしたこちらの資料「550人ユーザーアンケート調査!Salesforce活用はできているのに難しいと感じるのはなぜ??」について興味のある方は、ぜひご活用ください。

 

そもそもSalesforceの「ガバナ制限」とは

インターネット経由で活用できるASP(Application Service Provider)の多くは、クラウド上のサーバをマルチテナント化して、複数のユーザにサービスを提供しています。サービスの基盤となる1つのリソースを仮想的に分割し、ユーザは、それを分け合いながら使っている状態です。
Salesforceも、マルチテナント方式のASPの1つ。だからこそ、インストール型の高機能CRM(顧客管理システム)より低コストで導入できて、システム管理のためのコストと手間が削減できるというメリットがあるのです。ただ、多くのユーザがCPUやメモリを共用している状態なので、特定ユーザがSalesforceのデータベースやCPUのパワーを占有するような処理を行うと、他のユーザの使用環境に悪影響が生じる可能性があります。
とくにSalesforceの場合、Apexという独自のプログラミング言語を使用して自社専用のアプリなどを開発し、プラットフォーム上で実行させられる設計になっています。一部のユーザが、長い時間がかかる、あるいは多くのリソースを必要とするApex処理を行うと、他のユーザは残ったわずかなリソースしか使えず、それをさらに複数ユーザが分け合うことにより、通常の倍以上の処理時間がかかるといった事態が起こりかねません。
それを防ぐために設定されているのが「ガバナ制限」です。ガバナ(Governor)とは、機械の回転盤などの速度を自律的に調整する「調速機」という意味です。Salesforceの場合は、プラットフォーム上のリソースを利用ユーザが公平に使えるよう調整するための機構という意味で、ガバナの名称が使われています。

 

ガバナ制限の種類とその影響について

Salesforceのガバナ制限には複数の種類があり、それぞれの制限には特定の目的や役割があります。それぞれの制限が、Apex処理にどのような影響をもたらすのかと、それぞれの注意点について解説します。

 

(1)Apexコード制限

Salesforceプラットフォーム上でカスタムロジックを実行する際、Apexコードが用いられます。このApexコードには、実行時間やメモリ使用量などの制限があります。これらの制限を超えるとエラーが発生し、コードの実行が失敗してしまうため、適切な処理フローの設計と、エラーハンドリングの構築やリソース管理が必要です。Apexコードについては、こちら(Salesforceのプログラミング言語 Apex(エーペックス)とは? )をご覧ください。

 

(2)SOQLクエリ制限

組織のデータベースに保存された情報を読み込む際に用いるのが、Salesforceのオブジェクトクエリ言語である「SOQLクエリ」です。SOQLクエリにはレコード数や1日のクエリ数の制限があるため、これらの制限を超えないためにも効率的なクエリ設計と、キャッシュの活用が重要です。

 

(3)APIリクエスト制限

外部システムとの連携やデータのインポート・エクスポートを行う際に利用されるのが、Salesforce APIです。APIリクエストには1日あたりのリクエスト数の制限があり、制限を超えると一時的にAPIの利用ができなくなります。APIの使用計画や、バッチ処理の実装が必要です。

 

(4)ワークフローとプロセス制限

ワークフローやプロセスビルダーを使って自動化されたビジネスプロセスは、Salesforceを活用するうえで非常に便利な機能です。ただ、これらの機能にも、1時間あたりのトリガー実行回数や、1回のトランザクション内で実行できるアクション数などの制限があるので、適切な設計や最適化が求められます。

 

なお、上記の各種制限の上限値はSalesforce側によって変更される場合があり、契約中のエディションによっても異なる場合があります。具体的な数値を確認したい場合は、Salesforceの公式クイックリファレンスを参照してください。

 

ガバナ制限によるエラーへの対処法

ガバナ制限に対処(制限を回避)するためには、いくつかの方法があります。これらの対策を施すことで、ガバナ制限によるエラーを防ぎ、システムの安定的な活用が可能です。とくに、ガバナ制限を受けそうな大量のデータを扱う処理を実装する場合は、以下の対処法をオススメします。

 

(1)バルク処理

1レコード単位にレコードを取り出すのではなく、複数のレコードを1回の処理で行う方式を「バルク処理」と呼び、大量のデータを効率的に処理できます。一度に多くのデータを処理することで、APIリクエスト数やクエリ数を抑えられます。

 

(2)パフォーマンス最適化

Apexコード内の処理を再確認することで、処理時間の短縮を図り、クエリの抽出条件・抽出項目を見なおせます。そしてクエリにかかる実行時間の短縮や使用メモリの節約で、パフォーマンスが最適化できるでしょう。その結果、ガバナ制限への抵触を回避できます。

 

(3)エラーハンドリング

先にご紹介した(1)(2)の対処法を行ったとしても、Salesforceを運用することで保持するデータ量が増え、突発的なガバナ制限によるエラーが発生する可能性は否定できません。重要な情報資産である顧客データを守るためには、ガバナ制限によって処理がエラーとなった場合にエラーメッセージの表示やリカバリ処理を実装するなどの適切なエラーハンドリングを、事前に構築しておきましょう。

 

これらの対処法以外にも、日頃からガバナ制限を考慮した開発・運用を心がけておくことで、ガバナ制限によるエラーを防ぎやすくなります。

 

(1)制限の把握
ガバナ制限を回避するためには、前項で解説したような制限内容の把握が重要です。定期的に公式ドキュメントや関連情報をチェックして、最新の制限について理解しておきましょう。

 

(2)システム設計の見直し
システム設計の段階からガバナ制限を考慮しておくことで、パフォーマンスや運用効率の向上が期待できます。ガバナ制限を意識したシステム設計を行いましょう。

 

(3)モニタリングとアラート設定
Salesforceには、ガバナ制限の状況を確認できるダッシュボードやレポートが準備されています。これらを活用してモニタリングやアラート設定を行うことで、ガバナ制限に達する前に問題を検出、対処が可能です。

 

ガバナ制限についてのよくある質問

Salesforceのガバナ制限は、すべてのユーザが安定的にシステムを活用できるようにするための、重要なルールです。ただ、あまり知られていないせいか、問い合わせも多いようです。よくある質問を、以下にまとめました。

 

Q:ガバナ制限に違反した場合、どのような影響がありますか?

A:ApexコードやSOQLクエリの実行エラーが発生し、処理が中断されます。また、API利用制限が適用され、一時的にAPIの利用が制限されることもあります。そのため、カスタムロジックやデータ操作に影響が出る可能性も出るでしょう。

 

Q:ガバナ制限が変更されることはありますか?

A:Salesforce社は定期的にガバナ制限を見直しており、必要に応じて変更を行っています。変更内容は、公式ドキュメントやリリースノートで確認することできます。アップグレードや新機能の導入時には、ガバナ制限の変更に注意が必要です。

 

Q:どうすればガバナ制限を回避できますか?

A:前項でも紹介しましたが、ガバナ制限を回避するためには以下の手段があります。これらの対策を行った上でガバナ制限に注意しながら、Salesforceアプリケーションを開発・運用することが重要です。

 

  • ・バルク処理の実装/大量のデータを効率的に処理するためにバルク処理を使用し、APIリクエスト数やクエリ数を抑えます。
  • ・パフォーマンス最適化/ApexコードやSOQLクエリの見直しを行い、処理時間やメモリ使用量を最適化が可能です。
  • ・モニタリングとアラート設定/ガバナ制限の使用状況を監視し、問題を検出するためにモニタリングやアラート設定を行います。
  • ・システム設計の最適化/ガバナ制限を考慮したシステム設計を行い、適切な制限管理を実施します。また、データ量やトランザクションの増加に対応するため、スケーラブルな設計を採用できるでしょう。

 

まとめ

今回は、Salesforceの最適なシステムパフォーマンスを維持するうえで重要な、ガバナ制限の概要や回避方法を紹介しました。「対処策が難しい」「システム最適化の方法がわからない」といった困りごとがありましたら、セラクCCCにご相談ください。
セラクCCCには300名(23年5月時点)を超える専門コンサルタントが在籍し、お客様側の視点からSalesforceのサポートサービスを行っています。効率的なSalesforceの活用を、セラクCCCのカスタマーサクセスチームがサポートいたします。お気軽に無料相談からお問い合わせください。

Salesforceでお悩みなら、
まずはお気軽に
お問い合わせください

  • TOP
  • コラム一覧
  • Salesforceの「ガバナ制限」とは?概要や回避方法を解説!

Salesforceでお悩みなら、
まずはお気軽に
お問い合わせください