essential skills for sql server dbas

Transcription

essential skills for sql server dbas
eLearning Event
ESSENTIAL SKILLS
FOR SQL SERVER DBAS
Session 3
Session 3
 Session 1
 DBAs: What, Why and How
 SQL Server Engine and Security
 Session 2
 File / Database Management
 Disaster Recovery
 Session 3
 SQL Server Performance
 Basics
 Maintenance
SQL Server as an Application
 How SQL Server Leverages RAM





The Plan Cache: Execution Plans.
The Buffer Pool: Database data/pages.
Workspace Memory: ‘Buckets’ for query output.
Other Caches: Object/User/Data.
Connection Details, etc.
 SQL Server is a Windows Application
 SQL Server is under same restrictions as other Apps.
 Pre-Emptive Multi-Tasking
 Quantum / Time Slice
 SQL Server HAS to YIELD
SQL Server as an Application
 How SQL Server Leverages RAM





The Plan Cache: Execution Plans.
The Buffer Pool: Database data/pages.
Workspace Memory: ‘Buckets’ for
query
output.
SQL
Server
has to wait its
Other Caches: Object/User/Data. turn and play ‘nice’ with
Connection Details, etc.
system resources – just like
all other processes and
 SQL Server is a Windows Application
 SQL Server is under same restrictions asapplications.
other Apps.
 Pre-Emptive Multi-Tasking
 Quantum / Time Slice
 SQL Server HAS to YIELD
Walkthrough: A Simple Query
Statistics
• Size, Shape, Distribution
• Help SQL Server
‘anticipate’
Walkthrough: A Simple Query
Behind the Scenes:
•
•
•
•
•
Network Transport / TDS
Authentication
Authorization
Parsing
Get or Generate an
Execution Plan
Statistics
• Size, Shape, Distribution
• Help SQL Server
‘anticipate’
Performance is Complex
 SQL Server Has its Own, Internal, Scheduler
 Manages Concurrent Operations within SQL Server.
 ‘Translates’ Quantums / Slices from OS into tasks
and operations internally.
 Keeps CAREFUL tabs and records on all of the
operations currently in processes.
 Also logs information about what SQL Server is
waiting on.
 “Insanely Complex”
Making Sense of Performance
 Overly-Simplified View of Performance:
 Problems Manifest when Data > RAM
 Small DBs on Servers with Large RAM are rarely a
problem.
 Larger Databases and ‘Tip of the Iceberg’
Making Sense of Performance
 Overly-Simplified View of Performance:
 Problems Manifest when Data > RAM
 Small DBs on Servers with Large RAM are rarely a
problem.
 Larger Databases and ‘Tip of the Iceberg’
Introduction to Indexes
Introduction to Indexes
Introduction to Indexes
Indexes are Narrower
Indexes are Narrower
Indexes and Balance Trees
1 - 1,750
1,751 – 3,500
1 - 875
1,751 – 2,626
876 – 1,750
2,267 – 3,500
1 -875
876 – 1,750
1,751 – 2,626
2,267 – 3,500
Clustered and Covering Indexes
 Clustered Indexes
 Only One Per Table.
 Defines LOGICAL order of data in your tables.
 Optimized for Ranged Queries.
 Covering Indexes
 ‘Cover’ everything needed to satisfy queried
portion of a single table.
 Typically ‘Wide’ – by virtue of ‘covering’ multiple
columns.
 Almost act as ‘specialized’ copies of your tables for
given/specific queries.
SQL Server Performance:
Maintenance
Statistics Maintenance
 Statistics
 What Creates them?
 You can – explicitly (CREATE STATISTICS command).
 Or, SQL Server can create them automatically.
 Maintenance
 UPDATE STATISTICS command
 OR: EXEC sp_updatestats
 Run it manually in each database (including system dbs)
 OR:
EXEC sp_msForEachdb
@command1 = 'EXEC ?..sp_updatestats'
 Updating Stats DOES impose some perf overhead.
Indexes - Fragmentation
“The new phone book is here! The new phone book is here!”
Navin R Johnson (The Jerk)
Index Defragmentation
Two Ways to Defragment:
 Reorganize (Defragment) Indexes:
 Typically used when indexes are < 30% Fragmented.
 Online Operation – queries won’t time-out.
 Rebuild Indexes:
 Typically done when fragmentation > 30%
 OFFLINE Operation: - Queries CAN/WILL time-out
 Enterprise Edition: Offers ‘Online’ Index Rebuilds
 Some Limitations / Tradeoffs
Indexes – Rebuilding and Reorganizing
 Detecting Fragmentation
 DBCC SHOWCONTIG or dm_db_index_physical_stats
 Addressing Fragmentation
 REORDER
 ALTER INDEX <index_name> ... WITH REORDER (2005+)
 DBCC INDEXDEFRAG (2000/Deprecated)
 REBUILD
 ALTER INDEX <index_name> ... WITH REBUILD (2005+)
 DBCC DBREINDEX (2000/Deprecated)
Index Maintenance: How to Cheat
 Michelle Ufford’s Index Defrag Script (v4.0)
 Free
 Awesome
Troubleshooting:
Tools/Techniques
Available Performance Tuning Tools
 Performance Monitor
 Low Level Windows/OS (and Application)
Instrumentation
 SQL Server Profiler
 SQL Server-level Tracing/Instrumentation
 DMVs and WAIT_STATS
 Query What SQL Server is doing, or has waited on.
 Detailed information on current execution details,
connections, cache/memory management, and
handles to execution plans.
 SQL Server Execution Plans
 HIGHLY Detailed Representations of Execution Plans
Performance Monitor (Perfmon)
SQL Server Profiler
Watcher Effect
 Logging Performance Data:
 Adds Performance Overhead when using
Profiler/Perfmon
 Recommendations:
 Beware ‘Feedback’ Loops.
 Always save Profiler traces to .trc files.
 Watcher Effect
 Can add up to 5% over head.
 Usually negligible
 But WATCH for it on heavily used Production Servers
WAIT STATS and DMVs
Books Online Documents GOBS of different Execution Based DMVs
SQL Server Execution Plans
SQL Server Execution Plans
SQL Server Execution Plans
Conclusion
 Additional Resources / Links:
http://updates.sqlservervideos.com