The Vocabulary of Performance Tuning

Slides:



Advertisements
Similar presentations
Module 2: Database Architecture
Advertisements

A HEAP OF CLUSTERS A look into heaps vs. clustered tables Ami Levin CTO, DBSophic X.
1 - Oracle Server Architecture Overview
Chapter 8 : Transaction Management. u Function and importance of transactions. u Properties of transactions. u Concurrency Control – Meaning of serializability.
Transaction Management WXES 2103 Database. Content What is transaction Transaction properties Transaction management with SQL Transaction log DBMS Transaction.
Transactions and Locks Lesson 22. Skills Matrix Transaction A transaction is a series of steps that perform a logical unit of work. Transactions must.
Agenda Journalling More Embedded SQL. Journalling.
Chapter Oracle Server An Oracle Server consists of an Oracle database (stored data, control and log files.) The Server will support SQL to define.
Agenda for Today Chapter 5 –Skip Lesson 2 Review questions Midterm Chapter 6 Review questions.
Architecture Rajesh. Components of Database Engine.
1 Oracle Architectural Components. 1-2 Objectives Listing the structures involved in connecting a user to an Oracle server Listing the stages in processing.
Introduction to Database Systems1. 2 Basic Definitions Mini-world Some part of the real world about which data is stored in a database. Data Known facts.
Module 8: Implementing Stored Procedures. Overview Implementing Stored Procedures Creating Parameterized Stored Procedures Working With Execution Plans.
By Shanna Epstein IS 257 September 16, Cnet.com Provides information, tools, and advice to help customers decide what to buy and how to get the.
Database structure and space Management. Database Structure An ORACLE database has both a physical and logical structure. By separating physical and logical.
Module 11 Creating Highly Concurrent SQL Server® 2008 R2 Applications.
Transactions and Locks A Quick Reference and Summary BIT 275.
Database structure and space Management. Segments The level of logical database storage above an extent is called a segment. A segment is a set of extents.
SQL/Lesson 7/Slide 1 of 32 Implementing Indexes Objectives In this lesson, you will learn to: * Create a clustered index * Create a nonclustered index.
Chapter 4 Indexes. Index Architecture  By default data is inserted on a first-come, first-serve basis  Indexes bring order to this chaos  Once you.
Connect with life Nauzad Kapadia Quartz Systems
Session 1 Module 1: Introduction to Data Integrity
Module 11: Managing Transactions and Locks
SQL Basics Review Reviewing what we’ve learned so far…….
Oracle Database Architectural Components
Data Integrity & Indexes / Session 1/ 1 of 37 Session 1 Module 1: Introduction to Data Integrity Module 2: Introduction to Indexes.
SQL Server Storage Inside. About Hemantgiri S. Goswami Hemantgiri S. Goswami is a Lead Database Consultant for Pythian, a company head quartered in Ottawa,
Databases.
In-Memory Capabilities
Inside transaction logging
What Is a Latch? …and Why Do I Care? Eddie Wuerch, mcm
A Day in the Life of a Row Eddie Wuerch, mcm
The Basics of Data Manipulation
What Is a Latch? …and Why Do I Care? Eddie Wuerch, mcm
CS422 Principles of Database Systems Course Overview
SQL Server Internals Overview
UFC #1433 In-Memory tables 2014 vs 2016
Finding more space for your tight environment
Chapter Overview Understanding the Database Architecture
Hustle and Bustle of SQL Pages
මොඩියුල විශ්ලේෂණය Buffer Pool Extension භාවිතය.
The Vocabulary of Performance Tuning
The Vocabulary of Performance Tuning
What Is a Latch? …and Why Do I Care? Eddie Wuerch, mcm
On transactions, and Atomic Operations
Batches, Transactions, & Errors
The Basics of Data Manipulation
Transactions, Locking and Query Optimisation
Inside transaction logging
TEMPDB – INTERNALS AND USAGE
The PROCESS of Queries John Deardurff
The PROCESS of Queries John Deardurff Website: ThatAwesomeTrainer.com
On transactions, and Atomic Operations
Statistics for beginners – In-Memory OLTP
The PROCESS of Queries John Deardurff
Interrogating the Transaction Log
Batches, Transactions, & Errors
The Vocabulary of Performance Tuning
A Beginners Guide to Transactions
A Beginners Guide to Transactions
The PROCESS of Queries John Deardurff August 8, 2015
A Beginners Guide to Transactions
A Beginners Guide to Transactions
The Vocabulary of Performance Tuning
A Beginners Guide to Transactions
Inside the Database Engine
Index Structure for Files.
Advanced Topics: Indexes & Transactions
Inside the Database Engine
Inside the Database Engine
Presentation transcript:

The Vocabulary of Performance Tuning SQL Saturday - Atlanta The Vocabulary of Performance Tuning John Deardurff Website: ThatAwesomeTrainer.com Twitter: @John_Deardurff Email: John@Deardurff.com

The Vocabulary of Performance Tuning Query Processing Transactions Tables Structures Execution Plans

Parse Resolve Optimize Compile Compile Execute Execute Execute Execute Ad Hoc Query First Time Stored Procedure Syntax Parse Execution Context Resolve Compile Optimize Execution Plan Procedure Cache Compile Compile Run Time Execute Execute Execute Execute SQL SQL Sets Sets

Sends Code to the Processor Modifies Data in the Database Batches vs Transactions Batches Transactions VS TSQL2012.mdf Sends Code to the Processor Modifies Data in the Database

Working with Batches

Inserting Records into an IDENTITY field

Rows stored in Data Pages Page Header (96 bytes) Header contains Page Information such a Page Number and Page Type Data Row 1 Data Row 2 Data Row 3 8060 bytes for Data Rows or Free Space Free Space Row Offest Array Displays how far from beginning of page each row is located.

How Data is Stored in Data Pages Heap Data stored in a Heap is not stored in any order and normally does not have a Primary Key. Data Row 8 Data Row 2 Data Row 7 Data Row 6 Data Row 5 Data Row 4 Data Row 1 Data Row 3 Data Row 9 Clustered Index Clustered Index data is stored in sorted order by the Clustering key. In many cases, this is the same value as the Primary Key. Data Row 1 Data Row 4 Data Row 7 Data Row 2 Data Row 5 Data Row 8 Data Row 3 Data Row 6 Data Row 9

Execution Plans Data stored in a Heap is not stored in any order and normally does not have a Primary Key. Clustered Index data is stored in sorted order by the Clustering key. In many cases, this is the same value as the Primary Key. Using a WHERE statement on an Index could possibly have the Execution Plan seek the Index instead of scan.

ROOT ROOT 1 - 7 8 - 15 16 -20 WHERE State = ‘IN’ AZ -IN IA - ND OH - WA CA 2 GA 8 FL 4 FL 16 IL 10 IN 1 IN 3 IN 7 IN 9 IN 12 IN 13 NV 5 MT 19 KS 14 TN 18 TX 6 VA 17 WA 11 WA 15 WA 20 Non–Clustered Index Clustered Index Or Heap ROOT 1 - 7 8 - 15 16 -20 1 John IN 2 Armando CA 3. Enrique IN 4. Heather FL 5 Sharon NV 6 Rachel TX 7 Hope IN 8 Ed GA 9 Breanna IN 10 Gary IL 11 Veronica WA 12 Jessica IN 13 Kelli IN 14 Bob KS 15 Morgan WA 16 Elias FL 17 Sidney VA 18 Tamera TN 19 Leann MT 20 Kori WA

DBCC IND

DBCC PAGE

Index Allocation Map Pages Each Allocation Unit has at least one IAM Page Shows Uniform Extents and Mixed Extents IAM is an 8000 byte map or 64000 bits which covers 4GB of extents in a file. (GAM Interval)

Transactions must pass the ACID test Atomicity – All or Nothing Consistent – Only valid data Isolated – No interference Durable – Data is recoverable

Transaction Log Recovery Transaction Recovery Action Required 1 None 2 Roll forward 3 Roll back 4 Roll forward 5 Roll back Checkpoint System Failure

What is a Lock? Transaction 1 Transaction 2 TSQL2012.mdf

Auto-Commit Transactions without Error Handling TSQL2012.ldf Checkpoint TSQL2012.mdf John, don’t forget to demonstrate SET XACT_ABORT ON

Explicit Transactions without Error Handling TSQL2012.ldf Checkpoint TSQL2012.mdf

Explicit Transactions with Error Handling TSQL2012.ldf TSQL2012.mdf Checkpoint

Creating Stored Procedures