Partitioned Tables and Query Performance

Slides:



Advertisements
Similar presentations
Yukon – What is New Rajesh Gala. Yukon – What is new.NET Framework Programming Data Types Exception Handling Batches Databases Database Engine Administration.
Advertisements

This work is by Kendra Little and is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported LicenseCreative Commons Attribution-NonCommercial-NoDerivs.
Big Data Working with Terabytes in SQL Server Andrew Novick
Dos and don’ts of Columnstore indexes The basis of xVelocity in-memory technology What’s it all about The compression methods (RLE / Dictionary encoding)
Tables Lesson 6. Skills Matrix Tables Tables store data. Tables are relational –They store data organized as row and columns. –Data can be retrieved.
Dual Partitioning for improved performance in VLDBs Ashwin Rao Karavadi, Rakesh Parida Microsoft IT.
SQL Server Columnstore Performance Tuning Eric N Hanson Principal Program Manager Microsoft Corporation.
BI Technical Infrastructure Approach
ISV Innovation Presented by ISV Innovation Presented by Business Intelligence Fundamentals: Data Loading Ola Ekdahl IT Mentors 9/12/08.
Praveen Srivatsa Director| AstrhaSoft Consulting blogs.asthrasoft.com/praveens |
LAYERED PARTITIONING Josip Šaban, Hypo Alpe Adria AG, Klagenfurt.
Splits, Merges and Purges THE HOW TO OF TABLE PARTITIONING.
Indexing Your Data Warehouse Troy Gallant, MTA. Agenda  A little about me  Indexing review  Enterprise Data Warehouse (EDW) vs. OLTP  EDW structure.
Doing fast! Optimizing Query performance with ColumnStore Indexes in SQL Server 2012 Margarita Naumova | SQL Master Academy.
Microsoft Connect /6/ :05 AM
Introduction to Partitioning in SQL Server
Partial Database Availability
In-Memory Capabilities
Temporal Databases Microsoft SQL Server 2016
Enterprise Row Level Security: SQL Server 2016 and Azure SQL DB
Operational Analytics in SQL Server 2016 and Azure SQL Database
Module 2: Creating Data Types and Tables
Introduction to SQL Server Analysis Services
Module 4: Creating and Tuning Indexes
Design Seamless Upgrades to SQL Server 2016 with Query Store
Orders of magnitude: Scale-Out your SQL Server Data
Partitioned Tables and Query Performance
Why Should I Care About … Partitioned Views?
Why Should I Care About … Partitioned Views?
The Ins and Outs of Partitioned Tables
Four Rules For Columnstore Query Performance
A developers guide to Azure SQL Data Warehouse
Beginner Table Partitioning
Blazing-Fast Performance:
EXEC and sp_executesql An Ad Hoc Rally
PREMIER SPONSOR GOLD SPONSORS SILVER SPONSORS BRONZE SPONSORS SUPPORTERS.
SQL 2014 In-Memory OLTP What, Why, and How
T-SQL Power! The OVER Clause: Your Key to No-Sweat Problem Solving
Overview of Security Investments
Introduction to partitioning
A developers guide to Azure SQL Data Warehouse
20 Questions with Azure SQL Data Warehouse
Table Partitioning Intro and make that a sliding window too!
Why Should I Care About … Partitioned Views?
In Memory OLTP Not Just for OLTP.
Realtime Analytics OLAP & OLTP in the mix
What’s new with SQL Server
Designing SSIS Packages for Performance
Adding Lightness Better Performance through Compression
Why Should I Care About … Partitioned Views?
Table Partitioning Intro and make that a sliding window too!
Finding Islands, Gaps, and Clusters in Complex Data
Four Rules For Columnstore Query Performance
Clustered Columnstore Indexes (SQL Server 2014)
Table Partitioning Intro and make that a sliding window too!
Applying Data Warehouse Techniques
Tracking Index Usage Like a Pro
Finding Islands, Gaps, and Clusters in Complex Data
Partition Switching Joe Tempel.
Why Should I Care About … Partitioned Views?
Managing Table Partitions at the Extreme
Using Columnstore indexes in Azure DevOps Services. Lessons learned
Using Columnstore indexes in Azure DevOps Services. Lessons learned
Applying Data Warehouse Techniques
How To Load A Fact Table Really, Really Fast
All about Indexes Gail Shaw.
The Ins and Outs of Indexes
SQL Server 2016 High Performance Database Offer.
Using Columnstore indexes in Azure DevOps Services. Lessons learned.
An Introduction to Partitioning
Presentation transcript:

Partitioned Tables and Query Performance Jay Robinson SQL Saturday #720 ALBUQUERQUE, 2018

The what, how, and why of table partitioning in SQL Server. Summary Concepts And Common Use Cases The what, how, and why of table partitioning in SQL Server. Optimizer Issues And Query Tactics What can happen when you try to query partitioned data, and what you can do about it.

Jay Robinson 24HOP 6.5+ C# DevOps Enterprise ETL ExactTarget IndyPASS Linux .NET PASS Performance PHP Postgresql Salesforce SqlClient SQLSaturday T-SQL VB3 downshiftdata@gmail.com | @downshiftdata | downshiftdata.arksoftware.net

Concepts Partition Function Assuming integer VALUES of 10, 20, 30... CREATE PARTITION FUNCTION {pf_name} ({param1})     AS RANGE LEFT|RIGHT     FOR VALUES ({val1}, {val2}, ... {valN}); sys.partition_functions, sys.partition_parameters, and sys.partition_range_values Assuming integer VALUES of 10, 20, 30... RANGE LEFT: <= 10, 11 to 20, 21 to 30, > 30 RANGE RIGHT: < 10, 10 to 19, 20 to 29, >= 30

Concepts Partition Scheme CREATE PARTITION SCHEME {ps_name}     AS PARTITION {pf_name}     TO ({fg1}, {fg2}, ... {fgN}); sys.data_spaces and sys.partition_schemes Number of filegroups must match number of values + 1

Concepts Partitioned Tables and Indexes CREATE TABLE {t_name} ({column_defs})     ON {ps_name}({col_name}); sys.partitions and sys.dm_db_partition_stats

Concepts Aligned v Non-Aligned Indexes Partition Elimination Whether or not the index’s partitioning matches the table partitioning Partition Elimination The optimizer’s act of limiting query processing to only relevant partitions

Use Cases for Partitioned Tables Data Deprecation ALTER TABLE ... SWITCH followed by TRUNCATE TABLE SQL Server 2016: WITH PARTITIONS ETL Operations (e.g. OLTP to OLAP) Migration Tasks (e.g. adding compression) Improved Write Performance (striping)

If you know the partition, use the partition function DEMO Scenario 1 Partitioning By Date If you know the partition, use the partition function

DEMO Scenario 2 Using a Persisted Computed Column Don’t rely on the partition function

DEMO Scenario 3 Leading with the Computed Column For discrete values, lead with the partitioned column

DEMO Scenario 4 Introducing Non-Clustered Indexes The optimizer isn’t always right

DEMO Scenario 5 Spanning Multiple Partitions Treat each partition independently

Microsoft Connect Issue #240968

It Lives! https://bit.ly/2w6w26K

Where Do We Go From Here? MSDN (duh!) Video: @Kendra_Little Columnstore: @NikoNeugebauer http://www.nikoport.com/columnstore/ @KimberlyLTripp, @PaulRandal, @BrentO sqlcommunity.slack.com And, as always, #sqlhelp

Thank You! Your feedback is appreciated... http://ow.ly/q5xt30ejhy7 "When I look fast, I'm not smooth and I am going slowly. And when I look slow, I am smooth and going fast." - Alain Prost downshiftdata@gmail.com | @downshiftdata | downshiftdata.arksoftware.net