Benjamin Nevarez Rotating Header Image


I am the author of SQL Server 2014 Query Tuning & Optimization and Inside the SQL Server Query Optimizer, published in 2011 and 2014, respectively.

SQL Server 2014 Query Tuning & Optimization Inside the SQL Server Query Optimizer

I am co-author and tech editor of Microsoft SQL Server 2012 Internals and Microsoft SQL Server 2008 Internals both by Kalen Delaney et al and published on 2013 and 2009 respectively. I co-wrote chapters 4 “Special Databases”, and 10 “Query Execution” of the SQL Server 2012 Internals book, which were originally written by Kalen Delaney and Craig Freedman, respectively.

SQL Server 2012 InternalsSQL Server 2008 Internals

SQL Sentry published High Performance Techniques for SQL Server, Volume 2 on Amazon, including articles from It includes my articles “A First Look at the New SQL Server Cardinality Estimator” and “SQL Server 2014 Incremental Statistics”.

High Performance Techniques for SQL Server

I helped on tech editing SQL Server Concurrency and Inside Microsoft SQL Server 2005: Query Tuning and Optimization both by Kalen Delaney and published on 2012 and 2007 respectively.

SQL Server ConcurrencyInside SQL Server 2005

One Comment

  1. Tatyana says:

    Hi Mr. Nevarez, I’m reading in your book “Inside SQL query optimizer…” : “When a non-clustered index is created on a table with a clustered index, each non-clustered index row also includes the table clustered key”.
    Do this mean, literally, that when creating non-clustered indexes we should not bother including a primary key into a list of “included” columns?
    Because I constantly see, in the dm_db_missing_index_details, suggestions like this:
    CREATE INDEX [missing_index_tTransaction_01] ON [tTransaction] ([D423]) INCLUDE ([szTransactionId]) – while, in this case, szTransactionId is a primary key and a clustered index for tTransaction table.
    Can you please comment on if there are cases when including a primary key does make sense, or maybe I’m misunderstanding it all?

Leave a Reply

Your email address will not be published. Required fields are marked *