Craig Freedman's SQL Server Blog

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

September, 2007

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

    Aggregation WITH ROLLUP

    • 11 Comments
    In this post, I'm going to discuss how aggregation WITH ROLLUP works. The WITH ROLLUP clause permits us to execute multiple "levels" of aggregation in a single statement. For example, suppose we have the following fictitious sales data. (This is the same...
  • Craig Freedman's SQL Server Blog

    Aggregation WITH CUBE

    • 8 Comments
    In my last post, I wrote about how aggregation WITH ROLLUP works. In this post, I will discuss how aggregation WITH CUBE works. Like the WITH ROLLUP clause, the WITH CUBE clause permits us to compute multiple "levels" of aggregation in a single statement...
  • Craig Freedman's SQL Server Blog

    Maintaining Unique Indexes

    • 7 Comments
    Consider the following schema: CREATE TABLE T (PK INT PRIMARY KEY, A INT, B INT) CREATE INDEX TA ON T(A) CREATE UNIQUE INDEX TB ON T(B) INSERT T VALUES (0, 0, 0) INSERT T VALUES (1, 1, 1) Now suppose we run the following update statement: ...
Page 1 of 1 (3 items)