Presentation is loading. Please wait.

Presentation is loading. Please wait.

Partitioning Design For Performance and Maintainability Martin Cairns

Similar presentations


Presentation on theme: "Partitioning Design For Performance and Maintainability Martin Cairns"— Presentation transcript:

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

14

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


Download ppt "Partitioning Design For Performance and Maintainability Martin Cairns"

Similar presentations


Ads by Google