Top Banner
Partitioning techniques in SQL Server Eladio Rincon ([email protected] ) Javier Loria ([email protected] ) Solid Quality Mentors
38

Partitioning techniques in SQL Server Eladio Rincon ([email protected])[email protected] Javier Loria ([email protected])[email protected] Solid Quality.

Dec 23, 2015

Download

Documents

Peter Porter
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Partitioning techniques in SQL Server

Eladio Rincon ([email protected])Javier Loria ([email protected])Solid Quality Mentors

Page 2: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

2

Agenda

© 2008 Solid Quality Mentors

Why?

How?

What?

Where?

Partitioning Toolbox

Page 3: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

3

Agenda

© 2008 Solid Quality Mentors

Why?

• Definition• I/O Basics• Table Basics• Operational Benefits

How?

What?

Where?

Toolbox

Page 4: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Definition

4© 2008 Solid Quality Mentors

Physical segregation of a single logical table

name into multiple, identical physical structures

Page 5: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

5

I/O BasicsOperation File Type Read Write

SELECT Database Random Synchronous -

INSERTUPDATEDELETE

Log Sequential - Synchronous

Database Random - Asynchronous

Bulk Insert Database Random Synchronous

Full Backup Database Sequential Synchronous *

Log Backup Log Sequential Synchronous -

Reindex Random ? ?

© 2008 Solid Quality Mentors OLTP8x58

8

8

24x7OLTP24

24

24

24

24

OLAPS

S

S

S

Page 6: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

6

Table Basics

© 2008 Solid Quality Mentors

Page 7: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

7

Operational Benefits

Performanc

eQuery(OLPT/OLAP)

Bulk-Insert

(OLAP)

Availability

Full Backups

Maintainabil

ityArchivi

ngPruning

Reindex

© 2008 Solid Quality Mentors

Page 8: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Poor’s Mans Table PartitioningCreating and using partitioned views

Page 9: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

9

Agenda

© 2008 Solid Quality Mentors

Why?

• Partition Function• Partition Scheme• Create Table Reloaded• Create Index Reloaded

How?

What?

Where?

Toolbox

Page 10: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Partition Function

10© 2008 Solid Quality Mentors

CREATE PARTITION FUNCTION Annual (INT) AS RANGE RIGHT FOR VALUES (20060101 , 20070101, 20080101, 20090101, 20100101);

Page 11: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Partition Scheme

11© 2008 Solid Quality Mentors

CREATE PARTITION SCHEME AnnualAS PARTITION AnnualTO (EmptyHistory, Fact2006, Fact2007, Fact2008, Fact2009, EmptyFuture)

Page 12: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

12

Create Table Reloaded

© 2008 Solid Quality Mentors

CREATE TABLE SalesDataMart.FactVendas( IdDimDate INT NOT NULL, IdDimProduct INT NOT NULL, IdDimCustomers INT NOT NULL, IdDimStore INT NOT NULL, OrderedQuantity INT NOT NULL, TotalSalesAmount DECIMAL (19, 2) NOT NULL, TotalProductCost DECIMAL (19, 2) NOT NULL, POSNum INT NOT NULL, InvoceNum INT NOT NULL) ON Annual(IdDimDate);

Page 13: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Create Index Reloaded

13© 2008 Solid Quality Mentors

CREATE CLUSTERED INDEX IDX_FactSalesON SalesDataMart.FactSales(IdDimDate, IdDimStore) ON Annual(IdDimDate);

ALTER TABLE SalesDataMart.FactSales ADD CONSTRAINT PK_FactSales PRIMARY KEY(IdDimDate, IdDimProduct, IdDimCustomers, IdDimStore)ON Annual(IdDimDate);

Page 14: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Partition 101Partitioned Hello World

Page 15: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

15

Agenda

© 2008 Solid Quality Mentors

Why?

• Table Design Patterns• Partition Types• Partition Methods• Index Partitions

How?

What?

Where?

How?

Page 16: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

16

Table and Design Patterns

© 2008 Solid Quality Mentors

OLTP• Reference• Transactional• History/Audit

OLAP• Dimension• Fact Tables

Page 17: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

17

Partition Types: Horizontal

Out of the Box: in SQL 2005/2008

Page 18: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

18

Horizontal Partition Methods

• RANGE– Out of the Box (SQL 2005, SQL 2008)

• HASH– Build your own (Calculated

Column/Hash/Range)• LIST

– Build your own (RANGE or Partitioned Views)

© 2008 Solid Quality Mentors

Page 19: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Partition Types: Vertical

19

Out of the Box: (n)text, image, xml, (n)varchar(max), varbinary(max) and CLR Types.

Build your own: Views and Instead of Trigger

Page 20: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Index Structures

20© 2008 Solid Quality Mentors

Clustered Index Non-clustered Index

Page 21: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Partitioned Table/non-partitioned Index

21© 2008 Solid Quality Mentors

Clustered Index Non-clustered Index

Page 22: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Non Partitioned Table/Partitioned Index

22© 2008 Solid Quality Mentors

Clustered Index Non-clustered Index

Filtered Indexes

Page 23: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Partitioned Table/Aligned Index

23© 2008 Solid Quality Mentors

Clustered Index Non-clustered Index

Page 24: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Partitioned ViewCREATE VIEW SalesDataMart.FactSalesByStore WITH SCHEMABINDING AS(SELECT IdDimDate, IdDimStore , SUM(OrderedQuantity) AS OrderedQuantity , SUM(TotalSalesAmount) AS TotalSalesAmount , SUM(TotalProductCost) AS TotalProductCost , COUNT_BIG(*) AS OrderNumFROM SalesDataMart.FactSalesGROUP BY IdDimDate, IdDimStore)GO

CREATE UNIQUE CLUSTERED INDEX PK_FactSalesByStoreON SalesDataMart.FactSalesByStore(IdDimDate, IdDimStore)ON Annual(IdDimDate);GO

Page 25: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Partitioningand Query Performance

Page 26: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

26

Agenda

© 2008 Solid Quality Mentors

Why?

• Logical/Physical• Method

How?

What?

Where?

Toolbox

Page 27: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Without Partitions

Disk

File

Filegroup

Partition

Primary

Page 28: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Simple: Partitioned

Disk

File

Filegroup

Partition

Primary 2006 2007 2008 2009

Page 29: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Multiple: Without Partitions

Disk

File

Filegroup

Partition

Primary

Page 30: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Multiple: with Partitions (1/3)

Disk

File

Filegroup

Partition

Primary 2006 2007 2008 2009

High Availability

Page 31: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Multiple: with Partitions (2/3)

Disk

File

Filegroup

Partition

Primary 2006 2007 2008 2009

Performance

Page 32: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Multiple: with Partitions (3/3)

Disk

File

Filegroup

Partition

Primary 2006 2007 2008 2009

Page 33: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

PartitioningAvailability and MaintainabilityBackup/Restore

Page 34: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

34

Agenda

© 2008 Solid Quality Mentors

Why?

• Pruning• Loading

How?

What?

Where?

Toolbox

Page 35: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Pruning

Page 36: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Sliding Window Loading

Page 37: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

37

Agenda

© 2008 Solid Quality Mentors

Why?

How?

What?

Where?

Partitioning Toolbox

Page 38: Partitioning techniques in SQL Server Eladio Rincon (ERincon@solidq.com)ERincon@solidq.com Javier Loria (javier@solidq.com)javier@solidq.com Solid Quality.

Thank You!!Thank You!!

Please remember to fill out evaluations