THE SQL Server Blog Spot on the Web

Welcome to SQLblog.com - The SQL Server blog spot on the web Sign in | |
in Search

Browse by Tags

All Tags » internals » Query Plans   (RSS)
Showing page 1 of 2 (14 total posts)
  • SQL Server Internals: Nested Loops Prefetching

    Nested loops join query plans can be a lot more interesting (and complicated!) than is commonly realized. One query plan area I get asked about a lot is prefetching. It is not documented in full detail anywhere, so this seems like a good topic to address in a blog post. The examples used in this article are based on questions asked by Adam ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on August 30, 2013
  • Execution Plan Analysis: The Mystery Work Table

    I love SQL Server execution plans. It is often easy to spot the cause of a performance problem just by looking at one. The task is considerably easier if the plan includes run-time information (a so-called ‘actual’ execution plan), but even a compiled plan can be very useful. Nevertheless, there are still times where the execution plan does not ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on March 7, 2013
  • Optimizing T-SQL queries that change data

    Most tuning efforts for data-changing operations concentrate on the SELECT side of the query plan. Sometimes people will also look at important storage engine considerations like locking and transaction log throughput that can have dramatic effects. As a consequence, a number of common practices have emerged, such as avoiding large numbers of ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on January 25, 2013
  • Parallel Execution Plans Suck

    Summary: A deep dive into SQL Server parallelism, and a potential performance problem with parallel plans that use TOP. There was an interesting question asked by Mark Storey-Smith on dba.stackexchange.com back in October 2011.  He was looking at the execution plan for a query that counts a million rows from a virtual auxiliary table of ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on May 2, 2012
  • Fun with Aggregates

    There are interesting things to be learned from even the simplest queries.  For example, imagine you are given the task of writing a query to list AdventureWorks product names where the product has at least one entry in the transaction history table, but fewer than ten. One possible query to meet that specification is: SELECT ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on March 11, 2012
  • Forcing a Parallel Query Execution Plan

    This post is for SQL Server developers who have experienced the special kind of frustration, which only comes from spending hours trying to convince the query optimizer to generate a parallel execution plan.  This situation often occurs when making an apparently innocuous change to the text of a moderately complex query; a change which ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on December 22, 2011
  • Join Performance, Implicit Conversions, and Residuals

    You probably already know that it’s important to be aware of data types when writing queries, and that implicit conversions between types can lead to poor query performance.  Some people have gone so far as to write scripts to search the plan cache for CONVERT_IMPLICIT elements, and others routinely inspect plans for that type of thing when ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on July 18, 2011
  • Beware Sneaky Reads with Unique Indexes

    A few days ago, Sandra Mueller (twitter | blog) asked a question using twitter’s #sqlhelp hash tag: “Might SQL Server retrieve (out-of-row) LOB data from a table, even if the column isn’t referenced in the query?” Leaving aside trivial cases (like selecting a computed column that does reference the LOB data), one might be tempted to say ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on December 13, 2010
  • Myth: SQL Server Caches a Serial Plan with every Parallel Plan

    Many people believe that whenever SQL Server creates an execution plan that uses parallelism, an alternative serial plan is also cached.  The idea seems to be that the execution engine then decides between the parallel and serial alternatives at runtime. I’ve seen this on forums, in blogs, and even in books.  In fairness, a lot of the ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on November 4, 2010
  • A Tale of Two Index Hints

    If you look up Table Hints in Books Online, you’ll find the following statement: If a clustered index exists, INDEX(0) forces a clustered index scan and INDEX(1) forces a clustered index scan or seek. If no clustered index exists, INDEX(0) forces a table scan and INDEX(1) is interpreted as an error. The interesting thing there is ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on September 22, 2010
1 2 Next >
Powered by Community Server (Commercial Edition), by Telligent Systems
  Privacy Statement