How many records can an Apex Batch processHow can I make my trigger only fire after all (of several thousand) records are finished being inserted?Apex Batch Job not processing all batchesNeed to Clarify Batch Apex Callout limitBest Practices for Batch ProcessingBatch not executingCalling executeBatch() method of two Batchable classes in execute method of a Schedule class, Will this hit governor limits?How many times trigger will be invoked if I want to process 30K records?Tooling API in Batch Apex?Can we avoid 'Attempted to schedule too many concurrent batch jobs in this org' error using Apex flex queue?Testing an Apex batch method execute() exception incrementing NumberOfErrors in the finish() method

Does an excessive table violate normalization rules?

What does すきすき mean here?

Disordered Cryptic Orders

Why isn't Hagrid removed from Hogwarts sooner in Harry's would-be 7th year?

Which culture used no personal names?

Novel with a mix of real world and gods

Extra battery in the bay of an HDD

How does Firefox know my ISP login page?

Armory Automaton and Dowsing Dagger/Sword of the Animist

Has there been a Kraken patron for the Warlock class in Unearthed Arcana?

What is this game with a red cricket pushing a ball?

When did 5 foot squares become standard in D&D?

Why does Principal Vagina say, "no relation" after introducing himself?

Who can change WIP limit in DoW when urgent work emerges?

Is Schrodinger's Cat itself an observer?

What is "demographic engineering" and how does it differ from ethnic cleansing?

Why is technology bad for children?

How to respond to "Why didn't you do a postdoc after your PhD?"

Is there a historical explanation as to why the USA people are so litigious compared to France?

What is the "Applicable country" field on the Icelandair check-in form?

Anatomically Correct Baku

Is there a push, in the United States, to use gender-neutral language and gender pronouns (when they are given)?

Advisor asked my whole slide presentation so she could give the presentation at international conference

"A tin of biscuits" vs "A biscuit tin"



How many records can an Apex Batch process


How can I make my trigger only fire after all (of several thousand) records are finished being inserted?Apex Batch Job not processing all batchesNeed to Clarify Batch Apex Callout limitBest Practices for Batch ProcessingBatch not executingCalling executeBatch() method of two Batchable classes in execute method of a Schedule class, Will this hit governor limits?How many times trigger will be invoked if I want to process 30K records?Tooling API in Batch Apex?Can we avoid 'Attempted to schedule too many concurrent batch jobs in this org' error using Apex flex queue?Testing an Apex batch method execute() exception incrementing NumberOfErrors in the finish() method






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty
margin-bottom:0;









1

















Finding mixed results within web searches, trying to locate a concise answer as to how many records can a batch process.



I am creating an apex batch that will run daily. It will query around 55,000 records the first time that it runs. Daily runs after that will query 500-1000 records.



Would limiting the scope of the execute batch method to say 1 potentially cause reaching governor limits? Does this mean the execute method will run 55,000 times?










share|improve this question
































    1

















    Finding mixed results within web searches, trying to locate a concise answer as to how many records can a batch process.



    I am creating an apex batch that will run daily. It will query around 55,000 records the first time that it runs. Daily runs after that will query 500-1000 records.



    Would limiting the scope of the execute batch method to say 1 potentially cause reaching governor limits? Does this mean the execute method will run 55,000 times?










    share|improve this question




























      1












      1








      1








      Finding mixed results within web searches, trying to locate a concise answer as to how many records can a batch process.



      I am creating an apex batch that will run daily. It will query around 55,000 records the first time that it runs. Daily runs after that will query 500-1000 records.



      Would limiting the scope of the execute batch method to say 1 potentially cause reaching governor limits? Does this mean the execute method will run 55,000 times?










      share|improve this question














      Finding mixed results within web searches, trying to locate a concise answer as to how many records can a batch process.



      I am creating an apex batch that will run daily. It will query around 55,000 records the first time that it runs. Daily runs after that will query 500-1000 records.



      Would limiting the scope of the execute batch method to say 1 potentially cause reaching governor limits? Does this mean the execute method will run 55,000 times?







      apex batch scheduled-apex scheduled-job






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question



      share|improve this question










      asked 8 hours ago









      ebarebar

      9610 bronze badges




      9610 bronze badges























          2 Answers
          2






          active

          oldest

          votes


















          5


















          The only practical limit on batch size is how long you want your batch to run. A batch can iterate over millions of records.




          Would limiting the scope of the execute batch method to say 1 potentially cause reaching governor limits?




          Setting a scope size of 1 will reduce your risk of governor exceptions, but increase overall run time of your job.




          Does this mean the execute method will run 55,000 times?




          Yes, if you want to process 55k records and you set the scope size to 1, your execute method will get called 55k times.






          share|improve this answer


























          • Perfect, exactly what I was looking for. Is there a simple way to estimate the approximate time for how long a scheduled job will take to complete?

            – ebar
            8 hours ago






          • 1





            Depends entirely on what type of processing you are doing. A single Apex transaction cannot take more than 10 seconds CPU time, but this limit is extended to 60 seconds for async. Also, some operations take clock time without counting against this limit, such as callouts or long running queries to the database. Given that the maximum cumulative wait time for callouts is 120 seconds, you could run over 3 minutes per execute.

            – Adrian Larson
            8 hours ago











          • I removed my comment @Adrian, got mixed up

            – Glen De Marcos
            7 hours ago


















          1


















          The maximum number of SObjects a batch can process depend on the type of object returned from start.



          • Iterable - the maximum number is 50000 since this is the maximum number of rows that you can query from the database in a session (the iterable is an in-memory representation of the whole set of objects to be iterated)

          • Database.QueryLocator - the maximum number is 50 million records.

          You'll find these limits described in the documentation.



          NB: You can use an iterator-based batch to process non-SObject data in which case the SObject limits don't apply.






          share|improve this answer


























          • Some more additions to Phil's post. */ If the start method of the batch class returns a QueryLocator, the optional scope parameter of Database.executeBatch can have a maximum value of 2,000. */ If set to a higher value, Salesforce chunks the records returned by the QueryLocator into smaller batches of up to 2,000 records. */ If the start method of the batch class returns an iterable, the scope parameter value has no upper limit.

            – Arabinda
            43 mins ago













          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "459"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );














          draft saved

          draft discarded
















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f280545%2fhow-many-records-can-an-apex-batch-process%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown


























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          5


















          The only practical limit on batch size is how long you want your batch to run. A batch can iterate over millions of records.




          Would limiting the scope of the execute batch method to say 1 potentially cause reaching governor limits?




          Setting a scope size of 1 will reduce your risk of governor exceptions, but increase overall run time of your job.




          Does this mean the execute method will run 55,000 times?




          Yes, if you want to process 55k records and you set the scope size to 1, your execute method will get called 55k times.






          share|improve this answer


























          • Perfect, exactly what I was looking for. Is there a simple way to estimate the approximate time for how long a scheduled job will take to complete?

            – ebar
            8 hours ago






          • 1





            Depends entirely on what type of processing you are doing. A single Apex transaction cannot take more than 10 seconds CPU time, but this limit is extended to 60 seconds for async. Also, some operations take clock time without counting against this limit, such as callouts or long running queries to the database. Given that the maximum cumulative wait time for callouts is 120 seconds, you could run over 3 minutes per execute.

            – Adrian Larson
            8 hours ago











          • I removed my comment @Adrian, got mixed up

            – Glen De Marcos
            7 hours ago















          5


















          The only practical limit on batch size is how long you want your batch to run. A batch can iterate over millions of records.




          Would limiting the scope of the execute batch method to say 1 potentially cause reaching governor limits?




          Setting a scope size of 1 will reduce your risk of governor exceptions, but increase overall run time of your job.




          Does this mean the execute method will run 55,000 times?




          Yes, if you want to process 55k records and you set the scope size to 1, your execute method will get called 55k times.






          share|improve this answer


























          • Perfect, exactly what I was looking for. Is there a simple way to estimate the approximate time for how long a scheduled job will take to complete?

            – ebar
            8 hours ago






          • 1





            Depends entirely on what type of processing you are doing. A single Apex transaction cannot take more than 10 seconds CPU time, but this limit is extended to 60 seconds for async. Also, some operations take clock time without counting against this limit, such as callouts or long running queries to the database. Given that the maximum cumulative wait time for callouts is 120 seconds, you could run over 3 minutes per execute.

            – Adrian Larson
            8 hours ago











          • I removed my comment @Adrian, got mixed up

            – Glen De Marcos
            7 hours ago













          5














          5










          5









          The only practical limit on batch size is how long you want your batch to run. A batch can iterate over millions of records.




          Would limiting the scope of the execute batch method to say 1 potentially cause reaching governor limits?




          Setting a scope size of 1 will reduce your risk of governor exceptions, but increase overall run time of your job.




          Does this mean the execute method will run 55,000 times?




          Yes, if you want to process 55k records and you set the scope size to 1, your execute method will get called 55k times.






          share|improve this answer














          The only practical limit on batch size is how long you want your batch to run. A batch can iterate over millions of records.




          Would limiting the scope of the execute batch method to say 1 potentially cause reaching governor limits?




          Setting a scope size of 1 will reduce your risk of governor exceptions, but increase overall run time of your job.




          Does this mean the execute method will run 55,000 times?




          Yes, if you want to process 55k records and you set the scope size to 1, your execute method will get called 55k times.







          share|improve this answer













          share|improve this answer




          share|improve this answer



          share|improve this answer










          answered 8 hours ago









          Adrian LarsonAdrian Larson

          117k19 gold badges141 silver badges281 bronze badges




          117k19 gold badges141 silver badges281 bronze badges















          • Perfect, exactly what I was looking for. Is there a simple way to estimate the approximate time for how long a scheduled job will take to complete?

            – ebar
            8 hours ago






          • 1





            Depends entirely on what type of processing you are doing. A single Apex transaction cannot take more than 10 seconds CPU time, but this limit is extended to 60 seconds for async. Also, some operations take clock time without counting against this limit, such as callouts or long running queries to the database. Given that the maximum cumulative wait time for callouts is 120 seconds, you could run over 3 minutes per execute.

            – Adrian Larson
            8 hours ago











          • I removed my comment @Adrian, got mixed up

            – Glen De Marcos
            7 hours ago

















          • Perfect, exactly what I was looking for. Is there a simple way to estimate the approximate time for how long a scheduled job will take to complete?

            – ebar
            8 hours ago






          • 1





            Depends entirely on what type of processing you are doing. A single Apex transaction cannot take more than 10 seconds CPU time, but this limit is extended to 60 seconds for async. Also, some operations take clock time without counting against this limit, such as callouts or long running queries to the database. Given that the maximum cumulative wait time for callouts is 120 seconds, you could run over 3 minutes per execute.

            – Adrian Larson
            8 hours ago











          • I removed my comment @Adrian, got mixed up

            – Glen De Marcos
            7 hours ago
















          Perfect, exactly what I was looking for. Is there a simple way to estimate the approximate time for how long a scheduled job will take to complete?

          – ebar
          8 hours ago





          Perfect, exactly what I was looking for. Is there a simple way to estimate the approximate time for how long a scheduled job will take to complete?

          – ebar
          8 hours ago




          1




          1





          Depends entirely on what type of processing you are doing. A single Apex transaction cannot take more than 10 seconds CPU time, but this limit is extended to 60 seconds for async. Also, some operations take clock time without counting against this limit, such as callouts or long running queries to the database. Given that the maximum cumulative wait time for callouts is 120 seconds, you could run over 3 minutes per execute.

          – Adrian Larson
          8 hours ago





          Depends entirely on what type of processing you are doing. A single Apex transaction cannot take more than 10 seconds CPU time, but this limit is extended to 60 seconds for async. Also, some operations take clock time without counting against this limit, such as callouts or long running queries to the database. Given that the maximum cumulative wait time for callouts is 120 seconds, you could run over 3 minutes per execute.

          – Adrian Larson
          8 hours ago













          I removed my comment @Adrian, got mixed up

          – Glen De Marcos
          7 hours ago





          I removed my comment @Adrian, got mixed up

          – Glen De Marcos
          7 hours ago













          1


















          The maximum number of SObjects a batch can process depend on the type of object returned from start.



          • Iterable - the maximum number is 50000 since this is the maximum number of rows that you can query from the database in a session (the iterable is an in-memory representation of the whole set of objects to be iterated)

          • Database.QueryLocator - the maximum number is 50 million records.

          You'll find these limits described in the documentation.



          NB: You can use an iterator-based batch to process non-SObject data in which case the SObject limits don't apply.






          share|improve this answer


























          • Some more additions to Phil's post. */ If the start method of the batch class returns a QueryLocator, the optional scope parameter of Database.executeBatch can have a maximum value of 2,000. */ If set to a higher value, Salesforce chunks the records returned by the QueryLocator into smaller batches of up to 2,000 records. */ If the start method of the batch class returns an iterable, the scope parameter value has no upper limit.

            – Arabinda
            43 mins ago
















          1


















          The maximum number of SObjects a batch can process depend on the type of object returned from start.



          • Iterable - the maximum number is 50000 since this is the maximum number of rows that you can query from the database in a session (the iterable is an in-memory representation of the whole set of objects to be iterated)

          • Database.QueryLocator - the maximum number is 50 million records.

          You'll find these limits described in the documentation.



          NB: You can use an iterator-based batch to process non-SObject data in which case the SObject limits don't apply.






          share|improve this answer


























          • Some more additions to Phil's post. */ If the start method of the batch class returns a QueryLocator, the optional scope parameter of Database.executeBatch can have a maximum value of 2,000. */ If set to a higher value, Salesforce chunks the records returned by the QueryLocator into smaller batches of up to 2,000 records. */ If the start method of the batch class returns an iterable, the scope parameter value has no upper limit.

            – Arabinda
            43 mins ago














          1














          1










          1









          The maximum number of SObjects a batch can process depend on the type of object returned from start.



          • Iterable - the maximum number is 50000 since this is the maximum number of rows that you can query from the database in a session (the iterable is an in-memory representation of the whole set of objects to be iterated)

          • Database.QueryLocator - the maximum number is 50 million records.

          You'll find these limits described in the documentation.



          NB: You can use an iterator-based batch to process non-SObject data in which case the SObject limits don't apply.






          share|improve this answer














          The maximum number of SObjects a batch can process depend on the type of object returned from start.



          • Iterable - the maximum number is 50000 since this is the maximum number of rows that you can query from the database in a session (the iterable is an in-memory representation of the whole set of objects to be iterated)

          • Database.QueryLocator - the maximum number is 50 million records.

          You'll find these limits described in the documentation.



          NB: You can use an iterator-based batch to process non-SObject data in which case the SObject limits don't apply.







          share|improve this answer













          share|improve this answer




          share|improve this answer



          share|improve this answer










          answered 7 hours ago









          Phil WPhil W

          3,8091 gold badge4 silver badges12 bronze badges




          3,8091 gold badge4 silver badges12 bronze badges















          • Some more additions to Phil's post. */ If the start method of the batch class returns a QueryLocator, the optional scope parameter of Database.executeBatch can have a maximum value of 2,000. */ If set to a higher value, Salesforce chunks the records returned by the QueryLocator into smaller batches of up to 2,000 records. */ If the start method of the batch class returns an iterable, the scope parameter value has no upper limit.

            – Arabinda
            43 mins ago


















          • Some more additions to Phil's post. */ If the start method of the batch class returns a QueryLocator, the optional scope parameter of Database.executeBatch can have a maximum value of 2,000. */ If set to a higher value, Salesforce chunks the records returned by the QueryLocator into smaller batches of up to 2,000 records. */ If the start method of the batch class returns an iterable, the scope parameter value has no upper limit.

            – Arabinda
            43 mins ago

















          Some more additions to Phil's post. */ If the start method of the batch class returns a QueryLocator, the optional scope parameter of Database.executeBatch can have a maximum value of 2,000. */ If set to a higher value, Salesforce chunks the records returned by the QueryLocator into smaller batches of up to 2,000 records. */ If the start method of the batch class returns an iterable, the scope parameter value has no upper limit.

          – Arabinda
          43 mins ago






          Some more additions to Phil's post. */ If the start method of the batch class returns a QueryLocator, the optional scope parameter of Database.executeBatch can have a maximum value of 2,000. */ If set to a higher value, Salesforce chunks the records returned by the QueryLocator into smaller batches of up to 2,000 records. */ If the start method of the batch class returns an iterable, the scope parameter value has no upper limit.

          – Arabinda
          43 mins ago



















          draft saved

          draft discarded















































          Thanks for contributing an answer to Salesforce Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f280545%2fhow-many-records-can-an-apex-batch-process%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown









          Popular posts from this blog

          Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

          Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

          Ласкавець круглолистий Зміст Опис | Поширення | Галерея | Примітки | Посилання | Навігаційне меню58171138361-22960890446Bupleurum rotundifoliumEuro+Med PlantbasePlants of the World Online — Kew ScienceGermplasm Resources Information Network (GRIN)Ласкавецькн. VI : Літери Ком — Левиправивши або дописавши її