54
Choosing Your Clustered Index

Choosing Your Clustered Index

Embed Size (px)

DESCRIPTION

We often hear that you should always have clustered indexes on your tables. What's left off of this discussion is the how to choose the columns for this index. Should it be the primary key? Or some other column or set of columns? Having the wrong key column(s) in the clustered index can lead to performance problems, possibly worse than having no clustered index on the table at all. In this session, we'll review common patterns for selecting clustered indexes and how to determine which pattern you need. Also, we'll look at how to analyze tables to help select the best clustered index for every table. http://www.jasonstrate.com/go/20131010-IX/

Citation preview

Page 1: Choosing Your Clustered Index

Choosing Your Clustered Index

Page 2: Choosing Your Clustered Index

Jason Strate

e: [email protected]

e: [email protected]

b: www.jasonstrate.com

t: StrateSQL

Resources jasonstrate.com/go/indexing

Introduction

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 3: Choosing Your Clustered Index

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

• Industry leaders in Microsoft BI and SQL Server Platform

• SQL Server Professionals - PASS Board of Directors, Speakers, Authors and MVP’s

• National Sales Team Divided by Microsoft Territories

• National System Integrator (NSI)• Gold Certified in Business Intelligence and Data

Platform• Platform Modernization/Safe Passage• Premier Partner for PDW SI Partner Program

MS PDW Partner of Year FY13Frontline Partnership Partner of the Year for Big DataExecutive sponsor - Andy Mouacdie, WW sales director PDW

• Over 7,200 customers worldwide• Over 186,000 people in PW database for demand

generation

About Pragmatic Works

Page 4: Choosing Your Clustered Index

Navigation

Page 5: Choosing Your Clustered Index

Challenge of data…

Page 6: Choosing Your Clustered Index

Driving for performance

Page 7: Choosing Your Clustered Index
Page 8: Choosing Your Clustered Index
Page 9: Choosing Your Clustered Index

Check you options!

Page 10: Choosing Your Clustered Index

Agenda

Introduction Clustered Index or Heap

Clustered Index Qualities

Clustered Index Patterns

Summary

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 11: Choosing Your Clustered Index

Session Goals

• Define basics related to clustered indexes

• Explain rules behind selecting clustering key

• Demonstrate differences between key column choices

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 12: Choosing Your Clustered Index

CLUSTERED INDEX OR HEAP

IntroductionClustered Index or

Heap

Clustered Index

Qualities

Clustered Index

PatternsSummary

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 13: Choosing Your Clustered Index

Heap Structure

• Pile of data

– Unordered

– First in, first out

– Scan “happy”

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 14: Choosing Your Clustered Index

Heap

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 15: Choosing Your Clustered Index

Heap

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 16: Choosing Your Clustered Index

Clustered Index

• Mechanism for storing data

– Ordered

– Structured

– Accessible

– Direct path

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 17: Choosing Your Clustered Index

Clustered Index

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 18: Choosing Your Clustered Index

Clustered Index

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 19: Choosing Your Clustered Index

DEMOClustered Index or Heap

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 20: Choosing Your Clustered Index

Pro Tip: Default to Clustered Indexes, unless heaps are proven to improve performance

Page 21: Choosing Your Clustered Index

CLUSTERED INDEX QUALITIES

IntroductionClustered Index or

Heap

Clustered Index

Qualities

Clustered Index

PatternsSummary

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 22: Choosing Your Clustered Index

Clustered Index Qualities

Static Narrow

UniqueEver-

increasing

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 23: Choosing Your Clustered Index

Clustered Index Qualities

Static Narrow

UniqueEver-

increasing

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 24: Choosing Your Clustered Index

Clustered Index Qualities

Static Narrow

UniqueEver-

increasing

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 25: Choosing Your Clustered Index

Narrow

Size

Rows 4 8 16 32 64

10,000 0.04 0.08 0.15 0.31 0.61

100,000 0.38 0.76 1.53 3.05 6.10

1,000,000 3.81 7.63 15.26 30.52 61.04

10,000,000 38.15 76.29 152.59 305.18 610.35

100,000,000 381.47 762.94 1,525.88 3,051.76 6,103.52

1,000,000,000 3,814.70 7,629.39 15,258.79 30,517.58 61,035.16

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 26: Choosing Your Clustered Index

Clustered Index Qualities

Static Narrow

UniqueEver-

increasing

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 27: Choosing Your Clustered Index

Unique

• Uniqueifier

Size

Rows 4 8 16 32 64

10,000 0.08 0.11 0.19 0.34 0.65

100,000 0.76 1.14 1.91 3.43 6.48

1,000,000 7.63 11.44 19.07 34.33 64.85

10,000,000 76.29 114.44 190.73 343.32 648.50

100,000,000 762.94 1,144.41 1,907.35 3,433.23 6,484.99

1,000,000,000 7,629.39 11,444.09 19,073.49 34,332.28 64,849.85

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 28: Choosing Your Clustered Index

Clustered Index Qualities

Static Narrow

UniqueEver-

increasing

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 29: Choosing Your Clustered Index

Ever-Increasing

1 2 3 4 5 6

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 30: Choosing Your Clustered Index

Ever-Increasing

1 3 5 6 2 4

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 31: Choosing Your Clustered Index

Ever-Increasing

1 2 3 4 5 6

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 32: Choosing Your Clustered Index

These are not unbreakable rules!

Page 33: Choosing Your Clustered Index

CLUSTERED INDEX PATTERNS

IntroductionClustered Index or

Heap

Clustered Index

Qualities

Clustered Index

PatternsSummary

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 34: Choosing Your Clustered Index

Clustered Index Patterns

Identity Column

Surrogate Key

Foreign KeyMulti-

Column

Globally Unique

Identifier

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 35: Choosing Your Clustered Index

Identity Column

• Non-related value that defines each row uniquely

• Assigned when data is inserted

• Typically uses:

– Int or bigint

– IDENTITY or SEQUENCE

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 36: Choosing Your Clustered Index

Identity Column

Static

Narrow

Unique

Ever-increasing

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 37: Choosing Your Clustered Index

DEMOIdentity Column

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 38: Choosing Your Clustered Index

Surrogate Key

• Unique value is a part of the row

• Assigned in the source data

• Data type dependent on the data

• Value should be unchanging

– Employee ID

– Social Security Number

– Birthdate

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 39: Choosing Your Clustered Index

Surrogate Key

Static

Narrow

Unique

Ever-increasing

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 40: Choosing Your Clustered Index

DEMOSurrogate Key

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 41: Choosing Your Clustered Index

Foreign Key

• One-to-many relationships

• Access path in child via parent

• Piggy-backs identity pattern

– Parent left of child identity value

• Common in many applications

– Order header to details

– Hotels to rooms

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 42: Choosing Your Clustered Index

Foreign Key

Static

Narrow

Unique

Ever-increasing

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 43: Choosing Your Clustered Index

DEMOForeign Key

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 44: Choosing Your Clustered Index

Multi-Column

• Similar to foreign key pattern

• Many-to-many relationships

• Highly dependent on selectivity

• NOT a collection of dimension keys

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 45: Choosing Your Clustered Index

Multi-Column

Static

Narrow

Unique

Ever-increasing

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 46: Choosing Your Clustered Index

DEMOMulti-Column

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 47: Choosing Your Clustered Index

Globally Unique Identifier

• Non-related value that defines each row uniquely

• Assigned when data is inserted

– Or from the application

• Typically uses:

– uniqueidentifier

– NEWID() or NEWSEQUENTIALID()

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 48: Choosing Your Clustered Index

Globally Unique Identifier

Static

Narrow

Unique

Ever-increasing

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 49: Choosing Your Clustered Index

DEMOGlobally Unique Identifier

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 50: Choosing Your Clustered Index

Pro Tip: Clustered indexes should be Static, Narrow, Unique, and Ever-increasing

Page 51: Choosing Your Clustered Index

SUMMARY

IntroductionClustered Index or

Heap

Clustered Index

Qualities

Clustered Index

PatternsSummary

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 52: Choosing Your Clustered Index

Summary

• Clustered indexes are important

• Select clustering keys based on need

• Validate clustered indexes over time

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 53: Choosing Your Clustered Index

More Information

Expert Performance IndexingFor SQL Server 2012

Jason StrateTed Krueger

OverviewStatistics

MaintenanceTools

Analysis

http://amzn.com/1430237414

MAKING BUSINESS INTELLIGENT www.pragmaticworks.com

Page 54: Choosing Your Clustered Index

ServicesSpeed development through training, and rapid development services from Pragmatic Works.

ProductsBI products to covert to a Microsoft BI platform and simplify development onthe platform.

FoundationHelping those who do not have themeans to get into information technologyachieve their dreams.

For more information…

Name: Jason Strate

Email: [email protected]

Blog: www.jasonstrate.com

Resource: jasonstrate.com/go/indexing