I am just curious what has happened internally within SQL Server that would have resulted in quicker run times.
When a query is running, and the transaction log file is required to grow, a bunch of stuff happens that will inevitably slow down the total runtime of the query.
A non-exhaustive list of those things include:
- the query is put into a wait state,
- SQL server may have to wait for other concurrent queries to finish so it can get exclusive access to the transaction log file,
- SQL Server calls into the Windows file APIs to grow the log file (which depends on drivers, Windows task scheduling, the speed of your disks, etc.),
- the log file has to be "zeroed out",
- the query has to be started back up and resume processing where it left off.
If this job does generates a lot of transaction log (i.e., it does inserts, updates, and deletes), that can cause the log to grow. If you increase the "filegrowth" setting for the log file to a higher value, then this big filegrowth operation will happen less frequently, and the overall job will run faster (as you observed).
All of the above is essentially true for data file growth as well, except that the data files don't necessarily need to be zeroed out (if you have "instant file initialization" (IFI) enabled).
The defaults for data and log file growth settings, especially on older versions of SQL Server, is very low. One recommendation is to set them 256 MB and 128 MB respectively. Regardless of the growth settings, you should strive to do what you can to avoid these file growth events when possible, especially during time sensitive operations.
For transaction log growth, this might mean doing smaller batches of work at once, or doing more frequent log backups, etc.
For data files, it might mean enabling IFI and manually growing data files periodically during a maintenance window when your monitoring alerts that the file is nearly full.
As I hope it's clear from my answer, it seems unlikely that an execution plan change is responsible for the performance difference you saw. But to answer the question from the title, which I just realized I forgot to do:
Does changing database growth rate force a new execution plan?
I don't actually know for sure if changing the data file growth settings invalidates the plan cache, but I don't think that it does.