1. A method to schedule execution of a plurality of batch jobs by a computer system, the method comprising: reading one or more constraints that constrain the execution of the plurality of batch jobs by the computer system, including constraints from a service level agreement, and a current load on the computer system; grouping the plurality of batch jobs into at least one run frequency that includes at least one batch job; setting the at least one run frequency to a first run frequency; computing a load generated by each batch job in the first run frequency on the computer system based on each batch job's start time to protect against a worst case in which a number of batch operations in such given time period is higher than an average number of batch operations expected during the busiest of such given time period; and determining an optimized start time for each batch job in the first run frequency that meets the one or more constraints and that distributes each batch job's load on the computer system using each batch job's computed load and the current load, the one or more constraints including at least one constraint of the service level agreement.