Nakul, a dedicated member of the Gandhinagar SQL Server User Group, recently emailed me with a very interesting, but quick question. He asked me why the SQL Server Agent starts before SQL Server Engine does? He made the very valid point that as the SQL Server Engine is the core service, it should start first, and there is little point to running the SQL Server Agent without it.
Off the top of my head, I can offer the following quick reasons for this sequence:
- The SQL Server Engine does not only run jobs for SQL Server Engine itself. It also runs jobs for other core services like the SQL Server Analysis Service, Integration Service, Reporting Service etc.;
- The SQL Server Agent can run almost any kind of task that an Operating system can run. For example invoking any program or running shell scripts;
- The SQL Server Agent also starts jobs which are scheduled to run the second the SQL Server Engine starts, and for this reason it is needed; and
- Replication, mirroring and a few other tasks also depend on Agent Jobs.
These are the reasons that I have come up with so far. Can you think of any more? Let us have your views.
Reference : Pinal Dave (http://blog.SQLAuthority.com)