Craig Freedman's SQL Server Blog

A discussion of query processing, query execution, and query plans in SQL Server.

June, 2006

Blog - About

About Craig Freedman's WebLog

About my blog

I am using this blog to write about how query processing works in SQL Server.

Some of the topics that I write about:

  • How to read and understand query plans and query operators.
  • How different query plans affect performance.
  • The tradeoffs made by the query optimizer when choosing query plans.
  • How subtle changes to a query can affect the choice of plan and impact performance.

About me

I've been developing commercial database engines and working on query processing for more than 10 years.  I've worked for the SQL Server team for more than 5 years and am a co-author of Inside Microsoft SQL Server 2005: TM 2005: Query Tuning and Optimization" href="http://www.microsoft.com/MSPress/books/8565.aspx" mce_href="http://www.microsoft.com/MSPress/books/8565.aspx">Query Tuning and Optimization.  You can learn more about me at this SQLServerCentral.com interview.

  • Craig Freedman's SQL Server Blog

    Bookmark Lookup

    • 15 Comments
    In my last post, I explained how SQL Server can use an index to efficiently locate rows that qualify for a predicate. When deciding whether to use an index, SQL Server considers several factors. These factors include checking whether the index covers...
  • Craig Freedman's SQL Server Blog

    Scans vs. Seeks

    • 6 Comments
    Scans and seeks are the iterators that SQL Server uses to read data from tables and indexes. These iterators are among the most fundamental ones that we support. They appear in nearly every query plan. What is the difference between a scan and a seek...
  • Craig Freedman's SQL Server Blog

    Properties of Iterators

    • 6 Comments
    In this post, I’ll give an overview of three interesting properties of iterators that can affect query performance: memory, non-blocking vs. blocking, and dynamic cursor support. Memory All iterators require some small fixed amount of memory to...
  • Craig Freedman's SQL Server Blog

    Viewing Query Plans

    • 4 Comments
    In my last post, I explained that SQL Server executes a query by compiling it into an iterator tree which we call a query plan. So, if we want to understand iterators and query execution better, we need a way to look at query plans. Fortunately, SQL Server...
  • Craig Freedman's SQL Server Blog

    The Building Blocks of Query Execution

    • 3 Comments
    What are iterators? SQL Server breaks queries down into a set of fundamental building blocks that we call operators or iterators. Each iterator implements a single basic operation such as scanning data from a table, updating data in a table, filtering...
  • Craig Freedman's SQL Server Blog

    Why am I starting this blog?

    • 5 Comments
    About two years ago I presented a talk to a couple of SQL Server user groups where I explained in general terms how SQL Server executes queries. I explained how to read showplan and how some of the most common operators (such as index scans and seeks...
Page 1 of 1 (6 items)