When a batch of SQL statements is submitted to SQL Server, SQL Server performs a number of steps, including the following, before the data can be returned to the client:
1. Parse the SQL statements and build a query tree (the internal format on which SQL Server operates).
2. Check for a previous cached plan for the query/procedure. If one does not exist or is no longer valid, optimize the SQL statements and generate an execution plan.
3. Check for permissions for access to the underlying objects.
4. Execute the execution plan for the SQL statements.
The first time a stored procedure executes, SQL Server loads the SQL code for the stored procedure from the system catalog into the plan cache and optimizes and compiles an execution ...