SlideShare a Scribd company logo
1 of 39
Database Performance
Database Performance for
Developers
Boris Hristov
Technical Trainers
Software University
http://softuni.bg
Table of Contents
1. Database Performance Factors
2. Query Execution Plans
3. Table Indexes
4. Table Partitioning
5. Performance Troubleshooting
2
Database
Performance Factors
Overview
 DB performance depends on many factors:
 Hardware
 CPU & RAM
 Storage, drives, RAID arrays
 SSD drives boost I/O performance
 Operating system configuration
 Services  turn off unused services
 Drivers  use high-performance devices drivers
 Network configuration  maximize throughput
 Virtual memory  pagefile.sys on separate HDD
DB Performance
4
 SQL Server version
 Hardware limits
 Features included
 SQL Server configuration
 Configure database storage and files
 Configure tempdb size and location
 Instance level configurations
 Not using Microsoft’s defaults 
DB Performance (2)
5
 Database design
 Schema normalization (3rd & 4th normal form?)
 Data types!
 Indexes
 Constraints
 Triggers
 Indexed views
 Stored Procedures / Functions
 Temp tables and table variables
DB Performance (3)
6
 Query tuning
 Efficient SQL
 Proper index usage
 Optimize physical I/O
 Stored procedures tuning
 Application design
 E.g. ORM framework, query efficiency, N+1 query problem,
transactions, more…
DB Performance (4)
7
Database
Performance Factors
DEMO
Query Execution Plans
How to Analyze Query Execution Plans?
Query Execution Plans
 The definition of Query Plan:
How the Query Optimizer decides to execute your query.
 Two types of plans:
 Estimated
 Actual
 What plan will be chosen depend on numerous factors!
 Plans are also cached for reuse
10
 Consider the following SQL query:
 Its execution plan might be as follows:
 Read execution plans from right to left and top to bottom!
Execution Plan: Example
SELECT c.CustomerID, soh.SalesOrderID, soh.OrderDate
FROM Sales.Customer c JOIN Sales.SalesOrderHeader soh
ON c.CustomerID = soh.CustomerID
WHERE soh.OrderDate > '20040101'
ORDER BY soh.OrderDate DESC
11
Query Operations
 Clustered Index Scan – O(n) operation
 Walks through the B-Tree clustered index
 The data is sorted by the clustered-index key
 Index Scan – O(n) operation
 Walks through the B-Tree index
 Index Seek – O(log(n)) operation
 Similar performance like Clustered Index Seek
 Key Lookup – O(1) operation
 Finds a table record by its ID (read a record)
12
Join Operations
 Nested Loops – O (n*m) operation
 Nested “for each row…” operation
 Merge Join – O (n + m) operation
 Scans both sides of join in parallel
 Ideal for large range scans
 No sort is required when both columns are indexed
 Hash Join – O (n + m) operation
 “Hashes” the join column/s from one side of join
 “Probes” with the other side (the larger)
13
14
SQL Sentry Plan Explorer (Free)
Query Execution Plans
Live Demo
Table Indexes
Clustered and Non-Clustered
Indexes
Indexes
 Indexes speed up searching of values in a certain column or
group of columns
 Provide fast data access in log(N) steps
 Usually implemented as B-trees
 SQL Server 2012 introduces Columnstore indexes!
 Insert / update / delete of records in indexed tables is slower!
17
 Clustered index is actually the data itself
 An index built-in the table as B-tree – very fast!
 Highly recommended for every table!
 Very useful for fast execution of WHERE, ORDER BY and GROUP BY
clauses
 Maximum 1 clustered index per table
 If a table has no clustered index, its data rows are stored in an
unordered structure (heap)
Clustered Indexes
18
Clustered Index: Structure
19
20
Columnstore Index: Structure
Non-Clustered Indexes
 Useful for fast retrieving a single record or a range of records
 Maintained in a separate structure in the DB
 Tend to be much narrower than the base table
 Can locate the exact record(s) with less I/O
 Has at least one more intermediate level than the clustered
index
 Much less valuable if table doesn’t have a clustered index
21
Non-Clustered Index: Structure
22
Add Index When
 You need fast access by some column or group of columns
 Unless the records are less than 1 000
 Search by certain column/s (WHERE clause)
 Data within the column is used to build joins
 Foreign keys are almost always good candidates for indexes
 You need to scan large table fast – Columnstore!
23
 Adding non-clustered indexes to a table can greatly speed-up
SELECT statements
 Every index has a certain amount of overhead
 The greater the number of indexes, the more overhead with every INSERT,
UPDATE, and DELETE statements
 Must balance the needs of the application with the pros and
cons of added indexes
 OLTP  less indexes (more modify, less read)
 Online Transaction Processing (Standard DB)
 OLAP  more indexes (more read, less modify)
 Online Analytical Processing (Data Warehouse)
How Many Indexes?
24
 When SQL Server creates indexes, every page is nearly 100% full
 No room on the leafs or intermediate pages for INSERTs, UPDATEs, or
DELETEs
 The default (100%) can cause costly page splits on certain tables
 Promotes table fragmentation
 You can specify amount of free space in leaf and intermediate
pages with FILLFACTOR and PADINDEX (prefer 75-80%)
 An option in the CREATE INDEX
 Small FILLFACTOR may cause performance issues – bigger pages =
more data in cache
Fill Factor
25
Table Indexes
Live Demo
Table Partitioning
Overview
Numbers
0
…
8000
 Partitioning is a physical split of a large table into several pieces
by some criteria
Why is partitioning cool?
Partition 1
0
…
2500
Partition 1
0
…
2500
Partition 1
0
…
2500
Partition 2
2501
…
4000
Partition 3
4001
…
8000
Numbers
0
…
8000
Why is partitioning cool? (2)
Partition 1
0
…
2500
Numbers
2501
…
4000
Numbers
4001
…
8000
FG1
FG2
FG3
Partitioning in SQL Server
Live Demo
Performance Troubleshooting
The Algorithm
 Baselining!
 Collect and Store Performance Data
 Performance Monitor
 SQL Server DMVs
 System information
 Ask the user –Was the performance OK today?
 If yes – save the information!
 Every time there is a performance problem – collect the same data and compare!
Prerequisite before troubleshooting
33
The correct approach to performance issues
Hardware
OS
SQL Server
Query
Performance Troubleshooting
The Algorithm
35
 Database Performance Factors
 Query Execution Plans
 Table Indexes
 Table Partitioning
 Performance Troubleshooting
Summary
?
https://softuni.bg/courses/databases
Databases
brshristov@live.com
@BorisHristov
www.borishristov.com
 AdventureWorks DB
 AdventureWorks Enlarged
 Credit Database
 Parametrization Database
 SQL Sentry Plan Explorer
Resources
License
 This course (slides, examples, demos, videos, homework, etc.)
is licensed under the "Creative Commons Attribution-
NonCommercial-ShareAlike 4.0 International" license
38
 Attribution: this work may contain portions from
 "Databases" course by Telerik Academy under CC-BY-NC-SA license
Free Trainings @ Software University
 Software University Foundation – softuni.org
 Software University – High-Quality Education,
Profession and Job for Software Developers
 softuni.bg
 Software University @ Facebook
 facebook.com/SoftwareUniversity
 Software University @ YouTube
 youtube.com/SoftwareUniversity
 Software University Forums – forum.softuni.bg

More Related Content

What's hot

Sql server lesson5
Sql server lesson5Sql server lesson5
Sql server lesson5Ala Qunaibi
 
Database indexing techniques
Database indexing techniquesDatabase indexing techniques
Database indexing techniquesahmadmughal0312
 
Sap business objects xir3.03.1, bi 4.0 & 4.1 training
Sap business objects xir3.03.1, bi 4.0 & 4.1 trainingSap business objects xir3.03.1, bi 4.0 & 4.1 training
Sap business objects xir3.03.1, bi 4.0 & 4.1 trainingFuturePoint Technologies
 
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 Book
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 BookADO Controls - Database Usage from Exploring MS Visual Basic 6.0 Book
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 BookMuralidharan Radhakrishnan
 
Database index by Reema Gajjar
Database index by Reema GajjarDatabase index by Reema Gajjar
Database index by Reema GajjarReema Gajjar
 
MSBI and Data WareHouse techniques by Quontra
MSBI and Data WareHouse techniques by Quontra MSBI and Data WareHouse techniques by Quontra
MSBI and Data WareHouse techniques by Quontra QUONTRASOLUTIONS
 
Sql server introduction
Sql server introductionSql server introduction
Sql server introductionRiteshkiit
 
Data Processing Using Quantum
Data Processing Using QuantumData Processing Using Quantum
Data Processing Using Quantumnibraspk
 
Mapping Data Flows Training deck Q1 CY22
Mapping Data Flows Training deck Q1 CY22Mapping Data Flows Training deck Q1 CY22
Mapping Data Flows Training deck Q1 CY22Mark Kromer
 
Designing high performance datawarehouse
Designing high performance datawarehouseDesigning high performance datawarehouse
Designing high performance datawarehouseUday Kothari
 
Database application and design
Database application and designDatabase application and design
Database application and designsieedah
 

What's hot (20)

SAS BASICS
SAS BASICSSAS BASICS
SAS BASICS
 
Sql server lesson5
Sql server lesson5Sql server lesson5
Sql server lesson5
 
Database indexing techniques
Database indexing techniquesDatabase indexing techniques
Database indexing techniques
 
Tableau Desktop Material
Tableau Desktop MaterialTableau Desktop Material
Tableau Desktop Material
 
Sap business objects xir3.03.1, bi 4.0 & 4.1 training
Sap business objects xir3.03.1, bi 4.0 & 4.1 trainingSap business objects xir3.03.1, bi 4.0 & 4.1 training
Sap business objects xir3.03.1, bi 4.0 & 4.1 training
 
ADO CONTROLS - Database usage
ADO CONTROLS - Database usageADO CONTROLS - Database usage
ADO CONTROLS - Database usage
 
Queryproc2
Queryproc2Queryproc2
Queryproc2
 
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 Book
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 BookADO Controls - Database Usage from Exploring MS Visual Basic 6.0 Book
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 Book
 
Database index by Reema Gajjar
Database index by Reema GajjarDatabase index by Reema Gajjar
Database index by Reema Gajjar
 
Sas training in hyderabad
Sas training in hyderabadSas training in hyderabad
Sas training in hyderabad
 
SqlSaturday199 - Columnstore Indexes
SqlSaturday199 - Columnstore IndexesSqlSaturday199 - Columnstore Indexes
SqlSaturday199 - Columnstore Indexes
 
Unit08 dbms
Unit08 dbmsUnit08 dbms
Unit08 dbms
 
MSBI and Data WareHouse techniques by Quontra
MSBI and Data WareHouse techniques by Quontra MSBI and Data WareHouse techniques by Quontra
MSBI and Data WareHouse techniques by Quontra
 
Sql server introduction
Sql server introductionSql server introduction
Sql server introduction
 
Data Processing Using Quantum
Data Processing Using QuantumData Processing Using Quantum
Data Processing Using Quantum
 
Mapping Data Flows Training deck Q1 CY22
Mapping Data Flows Training deck Q1 CY22Mapping Data Flows Training deck Q1 CY22
Mapping Data Flows Training deck Q1 CY22
 
Sql rally 2013 columnstore indexes
Sql rally 2013   columnstore indexesSql rally 2013   columnstore indexes
Sql rally 2013 columnstore indexes
 
Sas
SasSas
Sas
 
Designing high performance datawarehouse
Designing high performance datawarehouseDesigning high performance datawarehouse
Designing high performance datawarehouse
 
Database application and design
Database application and designDatabase application and design
Database application and design
 

Viewers also liked

Database Transactions and SQL Server Concurrency
Database Transactions and SQL Server ConcurrencyDatabase Transactions and SQL Server Concurrency
Database Transactions and SQL Server ConcurrencyBoris Hristov
 
The World of Business Intelligence
The World of Business IntelligenceThe World of Business Intelligence
The World of Business IntelligenceBoris Hristov
 
First Steps with Microsoft SQL Server
First Steps with Microsoft SQL ServerFirst Steps with Microsoft SQL Server
First Steps with Microsoft SQL ServerBoris Hristov
 
Smart Architect 7steps to Transform
Smart Architect 7steps to TransformSmart Architect 7steps to Transform
Smart Architect 7steps to TransformUBM_Design_Central
 
Brad McGehee Become an Exceptional DBA March 2009
Brad McGehee Become an Exceptional DBA March 2009Brad McGehee Become an Exceptional DBA March 2009
Brad McGehee Become an Exceptional DBA March 2009Mark Ginnebaugh
 
Effectively Manage SAP Global Templates
Effectively Manage SAP Global TemplatesEffectively Manage SAP Global Templates
Effectively Manage SAP Global TemplatesSubodh Jambhekar
 
Supply Planning Leadership Exchange: SAP PP/DS What You Need to Know Part 1
Supply Planning Leadership Exchange: SAP PP/DS What You Need to Know Part 1Supply Planning Leadership Exchange: SAP PP/DS What You Need to Know Part 1
Supply Planning Leadership Exchange: SAP PP/DS What You Need to Know Part 1Plan4Demand
 
Foundation of a Multi-Partner Delivery Model
Foundation of a Multi-Partner Delivery ModelFoundation of a Multi-Partner Delivery Model
Foundation of a Multi-Partner Delivery ModelSubodh Jambhekar
 
SAP-APO-SNP Training
SAP-APO-SNP TrainingSAP-APO-SNP Training
SAP-APO-SNP TrainingAJAY
 
Smart Business Architect
Smart Business ArchitectSmart Business Architect
Smart Business ArchitectVioleta Salas
 
SCM-APO-PP/DS-Production Planning and Detailed Scheduling
SCM-APO-PP/DS-Production Planning and Detailed SchedulingSCM-APO-PP/DS-Production Planning and Detailed Scheduling
SCM-APO-PP/DS-Production Planning and Detailed SchedulingAJAY
 
Database administrator performance appraisal
Database administrator performance appraisalDatabase administrator performance appraisal
Database administrator performance appraisaltaylorshannon964
 
Business acumen for strategy
Business acumen for strategyBusiness acumen for strategy
Business acumen for strategyLinda Gorchels
 
SAUG Summit 2009 - Session 9 SAP Solution Architect
SAUG Summit 2009 - Session 9 SAP Solution ArchitectSAUG Summit 2009 - Session 9 SAP Solution Architect
SAUG Summit 2009 - Session 9 SAP Solution ArchitectPhil Gleadhill
 
The Project Management Process - Week 11 Contemporary Issues
The Project Management Process - Week 11   Contemporary IssuesThe Project Management Process - Week 11   Contemporary Issues
The Project Management Process - Week 11 Contemporary IssuesCraig Brown
 
SAP BUSINESS BLUE PRINT PRACTICE PROJECT
SAP BUSINESS BLUE PRINT PRACTICE PROJECTSAP BUSINESS BLUE PRINT PRACTICE PROJECT
SAP BUSINESS BLUE PRINT PRACTICE PROJECTVenet Dheer
 
The Project Management Process - Week 2
The Project Management Process - Week 2The Project Management Process - Week 2
The Project Management Process - Week 2Craig Brown
 
Transaction management and concurrency control
Transaction management and concurrency controlTransaction management and concurrency control
Transaction management and concurrency controlDhani Ahmad
 

Viewers also liked (19)

Database Transactions and SQL Server Concurrency
Database Transactions and SQL Server ConcurrencyDatabase Transactions and SQL Server Concurrency
Database Transactions and SQL Server Concurrency
 
The World of Business Intelligence
The World of Business IntelligenceThe World of Business Intelligence
The World of Business Intelligence
 
First Steps with Microsoft SQL Server
First Steps with Microsoft SQL ServerFirst Steps with Microsoft SQL Server
First Steps with Microsoft SQL Server
 
Smart Architect 7steps to Transform
Smart Architect 7steps to TransformSmart Architect 7steps to Transform
Smart Architect 7steps to Transform
 
Brad McGehee Become an Exceptional DBA March 2009
Brad McGehee Become an Exceptional DBA March 2009Brad McGehee Become an Exceptional DBA March 2009
Brad McGehee Become an Exceptional DBA March 2009
 
Effectively Manage SAP Global Templates
Effectively Manage SAP Global TemplatesEffectively Manage SAP Global Templates
Effectively Manage SAP Global Templates
 
Supply Planning Leadership Exchange: SAP PP/DS What You Need to Know Part 1
Supply Planning Leadership Exchange: SAP PP/DS What You Need to Know Part 1Supply Planning Leadership Exchange: SAP PP/DS What You Need to Know Part 1
Supply Planning Leadership Exchange: SAP PP/DS What You Need to Know Part 1
 
Foundation of a Multi-Partner Delivery Model
Foundation of a Multi-Partner Delivery ModelFoundation of a Multi-Partner Delivery Model
Foundation of a Multi-Partner Delivery Model
 
SAP-APO-SNP Training
SAP-APO-SNP TrainingSAP-APO-SNP Training
SAP-APO-SNP Training
 
Smart Business Architect
Smart Business ArchitectSmart Business Architect
Smart Business Architect
 
SCM-APO-PP/DS-Production Planning and Detailed Scheduling
SCM-APO-PP/DS-Production Planning and Detailed SchedulingSCM-APO-PP/DS-Production Planning and Detailed Scheduling
SCM-APO-PP/DS-Production Planning and Detailed Scheduling
 
Database administrator performance appraisal
Database administrator performance appraisalDatabase administrator performance appraisal
Database administrator performance appraisal
 
Business acumen for strategy
Business acumen for strategyBusiness acumen for strategy
Business acumen for strategy
 
SAUG Summit 2009 - Session 9 SAP Solution Architect
SAUG Summit 2009 - Session 9 SAP Solution ArchitectSAUG Summit 2009 - Session 9 SAP Solution Architect
SAUG Summit 2009 - Session 9 SAP Solution Architect
 
The Project Management Process - Week 11 Contemporary Issues
The Project Management Process - Week 11   Contemporary IssuesThe Project Management Process - Week 11   Contemporary Issues
The Project Management Process - Week 11 Contemporary Issues
 
SAP BUSINESS BLUE PRINT PRACTICE PROJECT
SAP BUSINESS BLUE PRINT PRACTICE PROJECTSAP BUSINESS BLUE PRINT PRACTICE PROJECT
SAP BUSINESS BLUE PRINT PRACTICE PROJECT
 
The Project Management Process - Week 2
The Project Management Process - Week 2The Project Management Process - Week 2
The Project Management Process - Week 2
 
Business Acumen
Business  AcumenBusiness  Acumen
Business Acumen
 
Transaction management and concurrency control
Transaction management and concurrency controlTransaction management and concurrency control
Transaction management and concurrency control
 

Similar to Database Performance

Getting to know oracle database objects iot, mviews, clusters and more…
Getting to know oracle database objects iot, mviews, clusters and more…Getting to know oracle database objects iot, mviews, clusters and more…
Getting to know oracle database objects iot, mviews, clusters and more…Aaron Shilo
 
MIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome MeasuresMIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome MeasuresSteven Johnson
 
Indy pass writing efficient queries – part 1 - indexing
Indy pass   writing efficient queries – part 1 - indexingIndy pass   writing efficient queries – part 1 - indexing
Indy pass writing efficient queries – part 1 - indexingeddiew
 
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...Michael Rys
 
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB DayGetting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB DayAmazon Web Services Korea
 
The thinking persons guide to data warehouse design
The thinking persons guide to data warehouse designThe thinking persons guide to data warehouse design
The thinking persons guide to data warehouse designCalpont
 
DB2 9 for z/OS - Business Value
DB2 9 for z/OS  - Business  ValueDB2 9 for z/OS  - Business  Value
DB2 9 for z/OS - Business ValueSurekha Parekh
 
Myth busters - performance tuning 102 2008
Myth busters - performance tuning 102 2008Myth busters - performance tuning 102 2008
Myth busters - performance tuning 102 2008paulguerin
 
Inside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTPInside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTPBob Ward
 
SQL Server Index and Partition Strategy
SQL Server Index and Partition StrategySQL Server Index and Partition Strategy
SQL Server Index and Partition StrategyHamid J. Fard
 
NoSQL - A Closer Look to Couchbase
NoSQL - A Closer Look to CouchbaseNoSQL - A Closer Look to Couchbase
NoSQL - A Closer Look to CouchbaseMohammad Shaker
 
15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performance15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performanceguest9912e5
 
SQL Complete Tutorial. All Topics Covered
SQL Complete Tutorial. All Topics CoveredSQL Complete Tutorial. All Topics Covered
SQL Complete Tutorial. All Topics CoveredDanish Mehraj
 
SQL Server Columnstore
SQL Server ColumnstoreSQL Server Columnstore
SQL Server ColumnstoreTony Rogerson
 
Sage 300 ERP: Technical Tour of Diagnostic Tools
Sage 300 ERP: Technical Tour of Diagnostic ToolsSage 300 ERP: Technical Tour of Diagnostic Tools
Sage 300 ERP: Technical Tour of Diagnostic ToolsSage 300 ERP CS
 

Similar to Database Performance (20)

Database Basics
Database BasicsDatabase Basics
Database Basics
 
Getting to know oracle database objects iot, mviews, clusters and more…
Getting to know oracle database objects iot, mviews, clusters and more…Getting to know oracle database objects iot, mviews, clusters and more…
Getting to know oracle database objects iot, mviews, clusters and more…
 
MIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome MeasuresMIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome Measures
 
Indy pass writing efficient queries – part 1 - indexing
Indy pass   writing efficient queries – part 1 - indexingIndy pass   writing efficient queries – part 1 - indexing
Indy pass writing efficient queries – part 1 - indexing
 
Ms sql server tips 1 0
Ms sql server tips 1 0Ms sql server tips 1 0
Ms sql server tips 1 0
 
Physical Design and Development
Physical Design and DevelopmentPhysical Design and Development
Physical Design and Development
 
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...
 
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB DayGetting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
 
Tunning overview
Tunning overviewTunning overview
Tunning overview
 
The thinking persons guide to data warehouse design
The thinking persons guide to data warehouse designThe thinking persons guide to data warehouse design
The thinking persons guide to data warehouse design
 
DB2 9 for z/OS - Business Value
DB2 9 for z/OS  - Business  ValueDB2 9 for z/OS  - Business  Value
DB2 9 for z/OS - Business Value
 
Myth busters - performance tuning 102 2008
Myth busters - performance tuning 102 2008Myth busters - performance tuning 102 2008
Myth busters - performance tuning 102 2008
 
Inside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTPInside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTP
 
SQL Server Index and Partition Strategy
SQL Server Index and Partition StrategySQL Server Index and Partition Strategy
SQL Server Index and Partition Strategy
 
NoSQL - A Closer Look to Couchbase
NoSQL - A Closer Look to CouchbaseNoSQL - A Closer Look to Couchbase
NoSQL - A Closer Look to Couchbase
 
15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performance15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performance
 
SQL Complete Tutorial. All Topics Covered
SQL Complete Tutorial. All Topics CoveredSQL Complete Tutorial. All Topics Covered
SQL Complete Tutorial. All Topics Covered
 
SQLServer Database Structures
SQLServer Database Structures SQLServer Database Structures
SQLServer Database Structures
 
SQL Server Columnstore
SQL Server ColumnstoreSQL Server Columnstore
SQL Server Columnstore
 
Sage 300 ERP: Technical Tour of Diagnostic Tools
Sage 300 ERP: Technical Tour of Diagnostic ToolsSage 300 ERP: Technical Tour of Diagnostic Tools
Sage 300 ERP: Technical Tour of Diagnostic Tools
 

More from Boris Hristov

The Secret to Engaging Presentations
The Secret to Engaging PresentationsThe Secret to Engaging Presentations
The Secret to Engaging PresentationsBoris Hristov
 
Presentation Design Fundamentals
Presentation Design FundamentalsPresentation Design Fundamentals
Presentation Design FundamentalsBoris Hristov
 
The 5 Hidden Performance Gems of SQL Server 2014
The 5 Hidden Performance Gems of SQL Server 2014The 5 Hidden Performance Gems of SQL Server 2014
The 5 Hidden Performance Gems of SQL Server 2014Boris Hristov
 
Securing SQL Azure DB? How?
Securing SQL Azure DB? How?Securing SQL Azure DB? How?
Securing SQL Azure DB? How?Boris Hristov
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!Boris Hristov
 
How to Deliver Technical Presentations: The Right Way!
How to Deliver Technical Presentations: The Right Way!How to Deliver Technical Presentations: The Right Way!
How to Deliver Technical Presentations: The Right Way!Boris Hristov
 
Securing SQL Azure DB? How?
Securing SQL Azure DB? How?Securing SQL Azure DB? How?
Securing SQL Azure DB? How?Boris Hristov
 
Top 5 T-SQL Improvements in SQL Server 2014
Top 5 T-SQL Improvements in SQL Server 2014Top 5 T-SQL Improvements in SQL Server 2014
Top 5 T-SQL Improvements in SQL Server 2014Boris Hristov
 
Presentation Skills: The Next Level
Presentation Skills: The Next LevelPresentation Skills: The Next Level
Presentation Skills: The Next LevelBoris Hristov
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!Boris Hristov
 
SQL Server 2014: Ready. Steady. Go!
SQL Server 2014: Ready. Steady. Go!SQL Server 2014: Ready. Steady. Go!
SQL Server 2014: Ready. Steady. Go!Boris Hristov
 
BI PoC for the Telco Industry
BI PoC for the Telco IndustryBI PoC for the Telco Industry
BI PoC for the Telco IndustryBoris Hristov
 
Presentation Design Basics
Presentation Design BasicsPresentation Design Basics
Presentation Design BasicsBoris Hristov
 
Deep Into Isolation Levels
Deep Into Isolation LevelsDeep Into Isolation Levels
Deep Into Isolation LevelsBoris Hristov
 
Top 5 T-SQL Improvements in SQL Server 2014
Top 5 T-SQL Improvements in SQL Server 2014Top 5 T-SQL Improvements in SQL Server 2014
Top 5 T-SQL Improvements in SQL Server 2014Boris Hristov
 
You want rules? You need Policy-Based Management!
You want rules? You need Policy-Based Management!You want rules? You need Policy-Based Management!
You want rules? You need Policy-Based Management!Boris Hristov
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!Boris Hristov
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!Boris Hristov
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!Boris Hristov
 
The Nightmare of Locking, Blocking and Isolation Levels
The Nightmare of Locking, Blocking and Isolation LevelsThe Nightmare of Locking, Blocking and Isolation Levels
The Nightmare of Locking, Blocking and Isolation LevelsBoris Hristov
 

More from Boris Hristov (20)

The Secret to Engaging Presentations
The Secret to Engaging PresentationsThe Secret to Engaging Presentations
The Secret to Engaging Presentations
 
Presentation Design Fundamentals
Presentation Design FundamentalsPresentation Design Fundamentals
Presentation Design Fundamentals
 
The 5 Hidden Performance Gems of SQL Server 2014
The 5 Hidden Performance Gems of SQL Server 2014The 5 Hidden Performance Gems of SQL Server 2014
The 5 Hidden Performance Gems of SQL Server 2014
 
Securing SQL Azure DB? How?
Securing SQL Azure DB? How?Securing SQL Azure DB? How?
Securing SQL Azure DB? How?
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!
 
How to Deliver Technical Presentations: The Right Way!
How to Deliver Technical Presentations: The Right Way!How to Deliver Technical Presentations: The Right Way!
How to Deliver Technical Presentations: The Right Way!
 
Securing SQL Azure DB? How?
Securing SQL Azure DB? How?Securing SQL Azure DB? How?
Securing SQL Azure DB? How?
 
Top 5 T-SQL Improvements in SQL Server 2014
Top 5 T-SQL Improvements in SQL Server 2014Top 5 T-SQL Improvements in SQL Server 2014
Top 5 T-SQL Improvements in SQL Server 2014
 
Presentation Skills: The Next Level
Presentation Skills: The Next LevelPresentation Skills: The Next Level
Presentation Skills: The Next Level
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!
 
SQL Server 2014: Ready. Steady. Go!
SQL Server 2014: Ready. Steady. Go!SQL Server 2014: Ready. Steady. Go!
SQL Server 2014: Ready. Steady. Go!
 
BI PoC for the Telco Industry
BI PoC for the Telco IndustryBI PoC for the Telco Industry
BI PoC for the Telco Industry
 
Presentation Design Basics
Presentation Design BasicsPresentation Design Basics
Presentation Design Basics
 
Deep Into Isolation Levels
Deep Into Isolation LevelsDeep Into Isolation Levels
Deep Into Isolation Levels
 
Top 5 T-SQL Improvements in SQL Server 2014
Top 5 T-SQL Improvements in SQL Server 2014Top 5 T-SQL Improvements in SQL Server 2014
Top 5 T-SQL Improvements in SQL Server 2014
 
You want rules? You need Policy-Based Management!
You want rules? You need Policy-Based Management!You want rules? You need Policy-Based Management!
You want rules? You need Policy-Based Management!
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!
 
The Nightmare of Locking, Blocking and Isolation Levels
The Nightmare of Locking, Blocking and Isolation LevelsThe Nightmare of Locking, Blocking and Isolation Levels
The Nightmare of Locking, Blocking and Isolation Levels
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Database Performance

  • 1. Database Performance Database Performance for Developers Boris Hristov Technical Trainers Software University http://softuni.bg
  • 2. Table of Contents 1. Database Performance Factors 2. Query Execution Plans 3. Table Indexes 4. Table Partitioning 5. Performance Troubleshooting 2
  • 4.  DB performance depends on many factors:  Hardware  CPU & RAM  Storage, drives, RAID arrays  SSD drives boost I/O performance  Operating system configuration  Services  turn off unused services  Drivers  use high-performance devices drivers  Network configuration  maximize throughput  Virtual memory  pagefile.sys on separate HDD DB Performance 4
  • 5.  SQL Server version  Hardware limits  Features included  SQL Server configuration  Configure database storage and files  Configure tempdb size and location  Instance level configurations  Not using Microsoft’s defaults  DB Performance (2) 5
  • 6.  Database design  Schema normalization (3rd & 4th normal form?)  Data types!  Indexes  Constraints  Triggers  Indexed views  Stored Procedures / Functions  Temp tables and table variables DB Performance (3) 6
  • 7.  Query tuning  Efficient SQL  Proper index usage  Optimize physical I/O  Stored procedures tuning  Application design  E.g. ORM framework, query efficiency, N+1 query problem, transactions, more… DB Performance (4) 7
  • 9. Query Execution Plans How to Analyze Query Execution Plans?
  • 10. Query Execution Plans  The definition of Query Plan: How the Query Optimizer decides to execute your query.  Two types of plans:  Estimated  Actual  What plan will be chosen depend on numerous factors!  Plans are also cached for reuse 10
  • 11.  Consider the following SQL query:  Its execution plan might be as follows:  Read execution plans from right to left and top to bottom! Execution Plan: Example SELECT c.CustomerID, soh.SalesOrderID, soh.OrderDate FROM Sales.Customer c JOIN Sales.SalesOrderHeader soh ON c.CustomerID = soh.CustomerID WHERE soh.OrderDate > '20040101' ORDER BY soh.OrderDate DESC 11
  • 12. Query Operations  Clustered Index Scan – O(n) operation  Walks through the B-Tree clustered index  The data is sorted by the clustered-index key  Index Scan – O(n) operation  Walks through the B-Tree index  Index Seek – O(log(n)) operation  Similar performance like Clustered Index Seek  Key Lookup – O(1) operation  Finds a table record by its ID (read a record) 12
  • 13. Join Operations  Nested Loops – O (n*m) operation  Nested “for each row…” operation  Merge Join – O (n + m) operation  Scans both sides of join in parallel  Ideal for large range scans  No sort is required when both columns are indexed  Hash Join – O (n + m) operation  “Hashes” the join column/s from one side of join  “Probes” with the other side (the larger) 13
  • 14. 14 SQL Sentry Plan Explorer (Free)
  • 16. Table Indexes Clustered and Non-Clustered Indexes
  • 17. Indexes  Indexes speed up searching of values in a certain column or group of columns  Provide fast data access in log(N) steps  Usually implemented as B-trees  SQL Server 2012 introduces Columnstore indexes!  Insert / update / delete of records in indexed tables is slower! 17
  • 18.  Clustered index is actually the data itself  An index built-in the table as B-tree – very fast!  Highly recommended for every table!  Very useful for fast execution of WHERE, ORDER BY and GROUP BY clauses  Maximum 1 clustered index per table  If a table has no clustered index, its data rows are stored in an unordered structure (heap) Clustered Indexes 18
  • 21. Non-Clustered Indexes  Useful for fast retrieving a single record or a range of records  Maintained in a separate structure in the DB  Tend to be much narrower than the base table  Can locate the exact record(s) with less I/O  Has at least one more intermediate level than the clustered index  Much less valuable if table doesn’t have a clustered index 21
  • 23. Add Index When  You need fast access by some column or group of columns  Unless the records are less than 1 000  Search by certain column/s (WHERE clause)  Data within the column is used to build joins  Foreign keys are almost always good candidates for indexes  You need to scan large table fast – Columnstore! 23
  • 24.  Adding non-clustered indexes to a table can greatly speed-up SELECT statements  Every index has a certain amount of overhead  The greater the number of indexes, the more overhead with every INSERT, UPDATE, and DELETE statements  Must balance the needs of the application with the pros and cons of added indexes  OLTP  less indexes (more modify, less read)  Online Transaction Processing (Standard DB)  OLAP  more indexes (more read, less modify)  Online Analytical Processing (Data Warehouse) How Many Indexes? 24
  • 25.  When SQL Server creates indexes, every page is nearly 100% full  No room on the leafs or intermediate pages for INSERTs, UPDATEs, or DELETEs  The default (100%) can cause costly page splits on certain tables  Promotes table fragmentation  You can specify amount of free space in leaf and intermediate pages with FILLFACTOR and PADINDEX (prefer 75-80%)  An option in the CREATE INDEX  Small FILLFACTOR may cause performance issues – bigger pages = more data in cache Fill Factor 25
  • 28. Numbers 0 … 8000  Partitioning is a physical split of a large table into several pieces by some criteria Why is partitioning cool? Partition 1 0 … 2500 Partition 1 0 … 2500 Partition 1 0 … 2500 Partition 2 2501 … 4000 Partition 3 4001 … 8000
  • 29. Numbers 0 … 8000 Why is partitioning cool? (2) Partition 1 0 … 2500 Numbers 2501 … 4000 Numbers 4001 … 8000 FG1 FG2 FG3
  • 30. Partitioning in SQL Server Live Demo
  • 32.  Baselining!  Collect and Store Performance Data  Performance Monitor  SQL Server DMVs  System information  Ask the user –Was the performance OK today?  If yes – save the information!  Every time there is a performance problem – collect the same data and compare! Prerequisite before troubleshooting
  • 33. 33 The correct approach to performance issues Hardware OS SQL Server Query
  • 35. 35  Database Performance Factors  Query Execution Plans  Table Indexes  Table Partitioning  Performance Troubleshooting Summary
  • 37.  AdventureWorks DB  AdventureWorks Enlarged  Credit Database  Parametrization Database  SQL Sentry Plan Explorer Resources
  • 38. License  This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" license 38  Attribution: this work may contain portions from  "Databases" course by Telerik Academy under CC-BY-NC-SA license
  • 39. Free Trainings @ Software University  Software University Foundation – softuni.org  Software University – High-Quality Education, Profession and Job for Software Developers  softuni.bg  Software University @ Facebook  facebook.com/SoftwareUniversity  Software University @ YouTube  youtube.com/SoftwareUniversity  Software University Forums – forum.softuni.bg