SlideShare a Scribd company logo
Natural Born Killers, performance
issues to avoid
Richard Douglas
Editor in chief of SQLServerPedia
Natural Born Killer




http://www.flickr.com/photos/merille/4747615138/sizes/z/in/photostream/


2   Natural Born Killers
Adhering to best practices?




http://www.flickr.com/photos/12693492@N04/1338123903/sizes/m/in/photostream/


3   Natural Born Killers
Your host

                           • Richard Douglas
                           • Systems Consultant /
                             Editor in Chief of SQLServerPedia
                           • SQL Server MCITPro
                           • Maidenhead SQL User Group Leader
                           • Blog: http://SQL.RichardDouglas.co.uk
                           • Twitter: @SQLRich
                           • Email: Richard.Douglas@Quest.com
                             Richard_Douglas@Dell.com

4   Natural Born Killers
Agenda
• Statistics

• Table Design

• SELECT pitfalls

• RBAR

• Scalar UDF’s

• Indices

• Key lookups

• Sargability

• Table variables

• Parameter sniffing


5   Natural Born Killers
Statistics

• SQL uses a cost based optimizer
• Costs influenced by statistics




6   Natural Born Killers
Statistics
• Creating Statistics
    – Automatic
    – Manual
       –    CREATE STATISTICS
       –    Sp_CreateStats

• Updating Statistics
           Permanent Table                  Temporary Table
           1st record                       1st record
           -                                6 records
           LT 500 recs, 500 changes         LT 500 recs, 500 changes
           GT 500 recs, 500 changes + 20%   GT 500 recs, 500 changes + 20%
• Sp_UpdateStats
• UPDATE STATISTICS

7   Natural Born Killers
Table Design




                           http://www.flickr.com/photos/aresauburnphotos/2699269321/sizes/o/in/photost
                           ream/

8   Natural Born Killers
Example of bad design




9   Natural Born Killers
Example of a better design




10   Natural Born Killers
Table Design – Size comparison




11   Natural Born Killers
Good table design benefits
• Minimise the CPU overhead.
• Increase the number of records in the buffer cache.
• Reduce the amount of physical disk IO.
• Reduce the amount of network traffic.
• Reduce the data file size(s).
• Reduce the working size of the Transaction Log.
• Reduce Full/Diff /T-Log backup file size.
  Thereby increasing your ability to deliver your RTO.
• Keep transaction time to a minimum.
12   Natural Born Killers
Source: http://cheezburger.com/View/5939764992


13   Natural Born Killers
SELECT *
• Returns all data from one or more tables.
     –   Pulls unnecessary data into the buffer cache
     –   Can result in excessive IO
     –   Increases network activity
     –   Can hide important data in Missing Index DMV’s


• Adding new attributes
     – May break existing code


• Increases code fix time

• SQL Azure
     – Paying for data transfer.



14   Natural Born Killers
SELECT * - A resolution




15   Natural Born Killers
RBAR Vs. Set Based




16   Natural Born Killers
Scalar User Defined Functions

• The Good
     – Re-Usable code


• The Bad
     – Runs once per record in record set
     – They don’t take advantage of parallelism
     – They use Nested Loop joins regardless



• The Ugly
     – So ugly it’s hidden from IO statistics
17   Natural Born Killers
Scalar UDF Solutions and Alternatives

• If you have to use them:
     – View the actual IO usage in Profiler


• If you can replace them:
     – Look at Table Value Functions
     – Look at CLR




18   Natural Born Killers
Indexing strategies
It’s all about DWI knowledge:

                            D W n
                            a o
                                I
                            t   r   t
                            a   k   e
                                l   r
                                o   n
                                a   a
                                d   l
                                    s


19   Natural Born Killers
Golden Rules for Clustered Indexes
Bad example; Surname, Firstname, Middle Initial
• Narrow
                                                 Impacts nonclustered indexes
• Static
• Progressive                                    Fragmentation
• Unique
• Fixed width                                    Space impact
• Not Null
                     This example will have 13 bytes of overhead alone;
                     • 4 byte uniquifier
                     • 2 byte variable offset + 6 bytes for variable length fields
 23
                     • 1 byte for NULL values and NULL bitmap
      Natural Born Killers
Golden Rules for NonClustered Indexes

• Have an optimal clustered key
• Not narrow
• Reduce unnecessary overhead
      – Fixed Width
      – Not null

• Consolidate
• Index foreign keys



 24   Natural Born Killers
Key Lookups – The silent killer




25   Natural Born Killers
Sargability

• SARGable – “Search ARGument able”

• T-SQL functions around a predicate can break
  SARGability

• Some caveats to remember




26   Natural Born Killers
Table Variables Vs. Temp Tables

Table Variables
• Fast when used with small data sets.
• Have a limited scope
• Use less locking and logging resources than temp tables
     – http://sql.richarddouglas.co.uk/archive/2011/06/rollback-gotchas-part-2-2.html

• Estimated statistics always show 1 record
• Cannot be altered after they are declared
• Mythbuster - MAY be memory only, this isn’t guaranteed
• Generally faster with smaller data sets

27   Natural Born Killers
Table Variables Vs. Temp Tables

Temp Tables
• Uses statistics
     – Stat population will cause recompiles (statement level in 2005 +)
     – Can create better plans

• Wider scope
• Can be rolled back
• Can be altered after creation
• Generally faster with larger data sets
28   Natural Born Killers
Parameter Sniffing
• What is it?
     – It’s all a matter of statistics


• How do I know when it will affect me?
     – Monitor the IO and CPU
     – This means baselining your environment


• What are my options?
     – Rewrite dynamic queries
     – Query Hints:
        –    WITH RECOMPILE
        –    OPTIMIZE FOR
     – Plan Guides


29   Natural Born Killers
Demo
30
Free posters, training DVDs, white papers, and more
     http://www.quest.com/landing/?id=5700




1.        SQL Server Blog Aggregator & Wiki at http://www.sqlserverpedia.com.
2.        Product Overviews at http://www.quest.com/sql-server/#c-Performance-
          Management. Plus, http://toadworld.com!
3.        Discussion forums at
          http://sqlserver.quest.com/forumindex.jspa?categoryID=208.
4.        Product video tutorials at http://db-
          management.com/blog/category/sqlserver/tutorials-sqlserver/.
     31   Natural Born Killers
Solution Area                        Product                                         Description

    Backup and
                                                                       Fast, flexible backup and recovery with
    Recovery                                                           industry-leading compression technology



    Performance                                                        Discover and resolve performance issues in
                                                                       production before they impact end users and
    & Operations
                                                                       service levels



    Performance                                                        Deepest possible understanding of database
    Tuning                                                             performance and norms



    Development                                                        Plan and develop applications that deliver
                                                                       both functionality and optimal performance


                                                                       Comprehensive schema, object, security and
    Administration                                                     change management

    Community,
                                    Project                            Community crowdsourcing for SQL Server
    Knowledge,
                                                                       tracing and performance information!
    Training                          Lucy
                     © 2012 Quest Software Inc. All rights reserved.                                        Pg. 32

More Related Content

PDF
MySQL Performance Tuning
PDF
MySQL Infrastructure Testing Automation at GitHub
DOC
98791866 proyecto-de-innovacion-computacion-20105
DOCX
Script for pitch
PDF
American Red Cross cert
PPTX
Enterprise linked data clouds
PDF
GMIT Year 1 Reults
DOCX
Pendidikan dan pengetahuan anak menurut islam
MySQL Performance Tuning
MySQL Infrastructure Testing Automation at GitHub
98791866 proyecto-de-innovacion-computacion-20105
Script for pitch
American Red Cross cert
Enterprise linked data clouds
GMIT Year 1 Reults
Pendidikan dan pengetahuan anak menurut islam

Viewers also liked (6)

PDF
Napier Cert
PPTX
'Gaming Startups - What I've Learned'
DOCX
Sejarah perkembangan telekomunikasi wa ode zaniba
PDF
L’alfabeto Italiano
PPTX
International Junior science Olympiad: Best Career Counsellng for students ...
Napier Cert
'Gaming Startups - What I've Learned'
Sejarah perkembangan telekomunikasi wa ode zaniba
L’alfabeto Italiano
International Junior science Olympiad: Best Career Counsellng for students ...
Ad

Similar to 'Natural born killers, SQL performance issues to avoid' (20)

PPTX
Natural Born Killers, Performance issues to avoid
PDF
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
PPTX
MyHeritage backend group - build to scale
PDF
Complex Data Transformations Made Easy
PPTX
50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...
PPTX
How to Achieve Scale with MongoDB
PPTX
Essential Data Engineering for Data Scientist
PPTX
Oracle Database in-Memory Overivew
PDF
Architecting Your Own DBaaS in a Private Cloud with EM12c
DOCX
Hi I need security-related job points for the software develope.docx
PDF
Monitoring MySQL at scale
PDF
Winning performance challenges in oracle standard editions
PDF
PostgreSQL and MySQL
PDF
제3회난공불락 오픈소스 인프라세미나 - MySQL Performance
PDF
Stardog 1.1: Easier, Smarter, Faster RDF Database
PDF
Stardog 1.1: An Easier, Smarter, Faster RDF Database
PDF
Modern Data Security with MySQL
PPT
SQL, NoSQL, BigData in Data Architecture
PDF
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
PDF
Just the Job: Employing Solr for Recruitment Search -Charlie Hull
Natural Born Killers, Performance issues to avoid
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
MyHeritage backend group - build to scale
Complex Data Transformations Made Easy
50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...
How to Achieve Scale with MongoDB
Essential Data Engineering for Data Scientist
Oracle Database in-Memory Overivew
Architecting Your Own DBaaS in a Private Cloud with EM12c
Hi I need security-related job points for the software develope.docx
Monitoring MySQL at scale
Winning performance challenges in oracle standard editions
PostgreSQL and MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQL Performance
Stardog 1.1: Easier, Smarter, Faster RDF Database
Stardog 1.1: An Easier, Smarter, Faster RDF Database
Modern Data Security with MySQL
SQL, NoSQL, BigData in Data Architecture
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
Just the Job: Employing Solr for Recruitment Search -Charlie Hull
Ad

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Empathic Computing: Creating Shared Understanding
PPT
Teaching material agriculture food technology
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation theory and applications.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Cloud computing and distributed systems.
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
Per capita expenditure prediction using model stacking based on satellite ima...
Empathic Computing: Creating Shared Understanding
Teaching material agriculture food technology
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Review of recent advances in non-invasive hemoglobin estimation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Spectroscopy.pptx food analysis technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation theory and applications.pdf
The AUB Centre for AI in Media Proposal.docx
Chapter 3 Spatial Domain Image Processing.pdf
Big Data Technologies - Introduction.pptx
Cloud computing and distributed systems.
MIND Revenue Release Quarter 2 2025 Press Release
“AI and Expert System Decision Support & Business Intelligence Systems”

'Natural born killers, SQL performance issues to avoid'

  • 1. Natural Born Killers, performance issues to avoid Richard Douglas Editor in chief of SQLServerPedia
  • 3. Adhering to best practices? http://www.flickr.com/photos/12693492@N04/1338123903/sizes/m/in/photostream/ 3 Natural Born Killers
  • 4. Your host • Richard Douglas • Systems Consultant / Editor in Chief of SQLServerPedia • SQL Server MCITPro • Maidenhead SQL User Group Leader • Blog: http://SQL.RichardDouglas.co.uk • Twitter: @SQLRich • Email: Richard.Douglas@Quest.com Richard_Douglas@Dell.com 4 Natural Born Killers
  • 5. Agenda • Statistics • Table Design • SELECT pitfalls • RBAR • Scalar UDF’s • Indices • Key lookups • Sargability • Table variables • Parameter sniffing 5 Natural Born Killers
  • 6. Statistics • SQL uses a cost based optimizer • Costs influenced by statistics 6 Natural Born Killers
  • 7. Statistics • Creating Statistics – Automatic – Manual – CREATE STATISTICS – Sp_CreateStats • Updating Statistics Permanent Table Temporary Table 1st record 1st record - 6 records LT 500 recs, 500 changes LT 500 recs, 500 changes GT 500 recs, 500 changes + 20% GT 500 recs, 500 changes + 20% • Sp_UpdateStats • UPDATE STATISTICS 7 Natural Born Killers
  • 8. Table Design http://www.flickr.com/photos/aresauburnphotos/2699269321/sizes/o/in/photost ream/ 8 Natural Born Killers
  • 9. Example of bad design 9 Natural Born Killers
  • 10. Example of a better design 10 Natural Born Killers
  • 11. Table Design – Size comparison 11 Natural Born Killers
  • 12. Good table design benefits • Minimise the CPU overhead. • Increase the number of records in the buffer cache. • Reduce the amount of physical disk IO. • Reduce the amount of network traffic. • Reduce the data file size(s). • Reduce the working size of the Transaction Log. • Reduce Full/Diff /T-Log backup file size. Thereby increasing your ability to deliver your RTO. • Keep transaction time to a minimum. 12 Natural Born Killers
  • 14. SELECT * • Returns all data from one or more tables. – Pulls unnecessary data into the buffer cache – Can result in excessive IO – Increases network activity – Can hide important data in Missing Index DMV’s • Adding new attributes – May break existing code • Increases code fix time • SQL Azure – Paying for data transfer. 14 Natural Born Killers
  • 15. SELECT * - A resolution 15 Natural Born Killers
  • 16. RBAR Vs. Set Based 16 Natural Born Killers
  • 17. Scalar User Defined Functions • The Good – Re-Usable code • The Bad – Runs once per record in record set – They don’t take advantage of parallelism – They use Nested Loop joins regardless • The Ugly – So ugly it’s hidden from IO statistics 17 Natural Born Killers
  • 18. Scalar UDF Solutions and Alternatives • If you have to use them: – View the actual IO usage in Profiler • If you can replace them: – Look at Table Value Functions – Look at CLR 18 Natural Born Killers
  • 19. Indexing strategies It’s all about DWI knowledge: D W n a o I t r t a k e l r o n a a d l s 19 Natural Born Killers
  • 20. Golden Rules for Clustered Indexes Bad example; Surname, Firstname, Middle Initial • Narrow Impacts nonclustered indexes • Static • Progressive Fragmentation • Unique • Fixed width Space impact • Not Null This example will have 13 bytes of overhead alone; • 4 byte uniquifier • 2 byte variable offset + 6 bytes for variable length fields 23 • 1 byte for NULL values and NULL bitmap Natural Born Killers
  • 21. Golden Rules for NonClustered Indexes • Have an optimal clustered key • Not narrow • Reduce unnecessary overhead – Fixed Width – Not null • Consolidate • Index foreign keys 24 Natural Born Killers
  • 22. Key Lookups – The silent killer 25 Natural Born Killers
  • 23. Sargability • SARGable – “Search ARGument able” • T-SQL functions around a predicate can break SARGability • Some caveats to remember 26 Natural Born Killers
  • 24. Table Variables Vs. Temp Tables Table Variables • Fast when used with small data sets. • Have a limited scope • Use less locking and logging resources than temp tables – http://sql.richarddouglas.co.uk/archive/2011/06/rollback-gotchas-part-2-2.html • Estimated statistics always show 1 record • Cannot be altered after they are declared • Mythbuster - MAY be memory only, this isn’t guaranteed • Generally faster with smaller data sets 27 Natural Born Killers
  • 25. Table Variables Vs. Temp Tables Temp Tables • Uses statistics – Stat population will cause recompiles (statement level in 2005 +) – Can create better plans • Wider scope • Can be rolled back • Can be altered after creation • Generally faster with larger data sets 28 Natural Born Killers
  • 26. Parameter Sniffing • What is it? – It’s all a matter of statistics • How do I know when it will affect me? – Monitor the IO and CPU – This means baselining your environment • What are my options? – Rewrite dynamic queries – Query Hints: – WITH RECOMPILE – OPTIMIZE FOR – Plan Guides 29 Natural Born Killers
  • 28. Free posters, training DVDs, white papers, and more http://www.quest.com/landing/?id=5700 1. SQL Server Blog Aggregator & Wiki at http://www.sqlserverpedia.com. 2. Product Overviews at http://www.quest.com/sql-server/#c-Performance- Management. Plus, http://toadworld.com! 3. Discussion forums at http://sqlserver.quest.com/forumindex.jspa?categoryID=208. 4. Product video tutorials at http://db- management.com/blog/category/sqlserver/tutorials-sqlserver/. 31 Natural Born Killers
  • 29. Solution Area Product Description Backup and Fast, flexible backup and recovery with Recovery industry-leading compression technology Performance Discover and resolve performance issues in production before they impact end users and & Operations service levels Performance Deepest possible understanding of database Tuning performance and norms Development Plan and develop applications that deliver both functionality and optimal performance Comprehensive schema, object, security and Administration change management Community, Project Community crowdsourcing for SQL Server Knowledge, tracing and performance information! Training Lucy © 2012 Quest Software Inc. All rights reserved. Pg. 32