Download presentation
Presentation is loading. Please wait.
Published byKathryn Morgan Modified over 9 years ago
1
Partitioning Design For Performance and Maintainability Martin Cairns http://sqlbyparts.com http://twitter.com/MartinCairnsSQL
2
Who am I?
3
Partitioning Defined Partitioning (noun) 1.the action or state of dividing or being divided into parts 2.a structure dividing a space into two parts Source: http://oxforddictionaries.com/definition/english/partitionhttp://oxforddictionaries.com/definition/english/partition
4
Types of Partitioning Horizontal Partition Table by Rows Vertical Partition Table by Columns File Group Partition Tables by File Group
5
Horizontal Partitioning Divides the rows into small sets by boundaries YearPKOrder IDProduct IDQtyCostLine XML 201011151.5<Line… 201021172<Line… 201110000002000034510005<Line… 2011100000120000347300012<Line… 201220000004000070580003<Line… 201220000014000170630007<Line…
6
Vertical Partitioning Divides columns from one table into multiple tables YearPKOrder ID… 201011… 21… 20111000000345… 20111000001347… 20122000000705… 20122000001706… YearPKLine XML 20101<Line… 20102<Line… 20111000000<Line… 20111000001<Line… 20122000000<Line… 20122000001<Line…
7
File Group Partitioning File group partitioning is separating the storage of tables and indexes onto separate database files During a Primary File Group restore the whole database will be offline Separate the system & user tables to allow the quickest restore time Since the partitioned database is made up of smaller parts it is easier to manage the storage location of the files
8
Using Table Partitioning Supports Horizontal Partitioning Partition Function defines boundaries based on a single column Partition Scheme defines the File Group Inserts automatically supported All partitions share the same definition as the table (indexes, columns, fill factor etc)
9
Table Level Limitations Only ~200 steps for each statistics across the whole table Online Index rebuilds are for the whole table not individual partitions Fill Factor Lock settings (Row, Page, Escalation, etc) Indexes are defined for the whole table rather than partitions
10
Using View Partitioning View Partitioning allows you to overcome Table Level Constraints Check Constraints used to define partitions Combine all tables with a UNION ALL View Can be used together with Table Partitioning Trigger required to allow INSERT with Identity column Allows more complex partitioning schemes
11
Candidates for Partitioning Large vs. Small Tables Replicated vs. Non-Replicated Tables Normal vs. BLOB columns Write Heavy Current data vs. Heavily Read Historic data Read \ Write vs. Read Only Tables
12
Partial Database Availability Also referred to as Piecemeal Restore Full Recovery Model is Required Individual File & File Groups Restore Only the Primary File Group is required to restore a database Allows restoring a subset of a correctly partitioned database for quicker recovery from a disaster
13
Tipping Point \ Why is it Table Scanning As the number of rows in a table increase the depth of the B+Tree increases The number of Page Reads for a lookup is equal to the depth of the B+Tree The Tipping Point is the point where a Full Table Scan requires less Page Reads than the lookups
15
What Does Partition Give Us Choices Using different Tiers of Storage Allows quicker recovery strategies Allows partial restores of the database Performance Allows reduction of overhead of backups Allows better query plans due to more accurate statistics on large tables
16
Demos Moving Tables to File Groups Partial Restore + Using Partial Restore to Initialise Replication Moving Partition Between Tables For Current vs. Historic Show how View Partitioning can present a single view of all tables & still support partition elimination
17
Graphics Graphics Show User Tables being moved from the Primary File Group to a Secondary File Group Show Partitions Moving Between Tables Show Vertical Partitioning Show Horizontal Partitioning
18
Splitting Active & History Data Combination of Table and View Partitioning
19
Using Sequences with Partitioning 10m rows per table using view partitioning to automatically direct inserted rows to tables Show PK-FK relationship for Order to Order Details split over many sets of tables
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.