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 » Undocumented » Internals   (RSS)
  • 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
  • Temporary Table Caching Explained

    SQL Server 2005 onward caches temporary tables and table variables referenced in stored procedures for reuse, reducing contention on tempdb allocation structures and catalogue tables.  A number of things can prevent this caching (none of which are allowed when working with table variables): Named constraints (bad idea anyway, since ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on August 16, 2012
  • Query Optimizer Deep Dive - Part 4

    This is the final part in a series of posts based on the content of the Query Optimizer Deep Dive presentations I have given over the last month or so at the Auckland SQL Users’ Group and the SQL Saturday events in Wellington, New Zealand and Adelaide, Australia. Links to other parts of this series: Part 1 Part 2 Part 3 Beating the Optimizer ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on April 30, 2012
  • Query Optimizer Deep Dive – Part 3

    This is the third part in a series of posts based on the content of the Query Optimizer Deep Dive presentations I have given over the last month or so at the Auckland SQL Users’ Group and the SQL Saturday events in Wellington, New Zealand and Adelaide, Australia. Links to other parts of this series: Part 1 Part 2 Part 4 Storage of Alternative ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on April 29, 2012
  • Query Optimizer Deep Dive – Part 2

    This is the second part in a series of posts based on the content of the Query Optimizer Deep Dive presentations I have given over the last month or so at the Auckland SQL Users’ Group and the SQL Saturday events in Wellington, New Zealand and Adelaide, Australia. Links to other parts of this series: Part 1 Part 3 Part 4 Cost-Based Optimization ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on April 28, 2012
  • Query Optimizer Deep Dive - Part 1

    This is the first in a series of posts based on the content of the Query Optimizer Deep Dive presentations I have given over the last month or so at the Auckland SQL Users’ Group and the SQL Saturday events in Wellington, New Zealand and Adelaide, Australia. Links to other parts of this series: Part 2 Part 3 Part 4 Introduction The motivation ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on April 27, 2012
  • SQL Server, Seeks, and Binary Search

    The following table summarizes the results from my last two blog entries, showing the CPU time used when performing 5 million clustered index seeks: In test 1, making the clustered index unique improved performance by around 40%. In test 2, making the same change reduced performance by around 70% (on 64-bit systems – more on that later).  ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on August 8, 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
  • 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
  • Sorting, Row Goals, and the TOP 100 Problem

    When you write a query to return the first few rows from a potential result set, you’ll often use the TOP clause.  To give a precise meaning to the TOP operation, it will normally be accompanied by an ORDER BY clause.  Together, the TOP…ORDER BY construction can be used to precisely identify which top ‘n’ rows should be returned. The ...
    Posted to Paul White: Page Free Space (Weblog) by Paul White on August 26, 2010
Powered by Community Server (Commercial Edition), by Telligent Systems
  Privacy Statement