
Understanding Query Processing
Now that we have learned the basics of writing T-SQL queries and how SQL Server interprets them, the next logical step is to understand how SQL Server processes and ultimately executes the query. The Query Processor includes query compilation, query optimization, and query execution essentials; how does SQL Server compile an incoming T-SQL statement? How does SQL Server optimize and execute a T-SQL statement? How does SQL Server use parameters? Are parameters an advantage? Why does a SQL Server cache execution plans for certain T-SQL statements but not others? When is that an advantage and when is it a problem? This is information that any T-SQL practitioner needs to keep as reference for proactive T-SQL query writing, as well as reactive troubleshooting and optimization purposes. This chapter will be referenced throughout all chapters, as we bridge architectural topics to real-world usage. The main stages of query processing can be seen in the following overview diagram, which we will expand on throughout this chapter:

In this chapter we will cover the following topics:
- Query compilation essentials
- Query optimization essentials
- Query execution essentials
- Plan caching and reuse
- The importance of parameters