Who Am I? What Am I Doing Here?
Motivation
Databases tend to last a lot longer than applications.
The primary database(s) you work with have likely been around for decades, in some form or another.
SQL Server has changed a lot since those databases were new, and there may be better ways to solve problems than existed before.
Let's bring some vitality back to those old databases and make our lives easier in the process!
Agenda
- Ground Rules
- SQL Server 2012
- SQL Server 2014
- SQL Server 2016
- SQL Server 2017
- SQL Server 2019
- SQL Server 2022
Ground Rules
- We will focus only on T-SQL improvements, not external products (e.g., SSIS, SSAS, SSRS, ML Services)
- We will focus on enhancements in functionality, not necessarily performance--we will ignore most adaptive query processing changes
- We will focus on "like to like" replacements, not "net new" things--we will ignore PolyBase, In-Memory OLTP, cardinality estimators, Query Store, etc.
- We will start with SQL Server 2012 and move forward version by version.
Agenda
- Ground Rules
- SQL Server 2012
- SQL Server 2014
- SQL Server 2016
- SQL Server 2017
- SQL Server 2019
- SQL Server 2022
Functionality We Won't Discuss
- Columnstore indexes
- Availability groups
Agenda
- Ground Rules
- SQL Server 2012
- SQL Server 2014
- SQL Server 2016
- SQL Server 2017
- SQL Server 2019
- SQL Server 2022
Functionality We Won't Discuss
- New cardinality estimator
- In-Memory OLTP
- Delayed Durability
- Updatable columnstore indexes
SELECT INTO
now parallelizable
Agenda
- Ground Rules
- SQL Server 2012
- SQL Server 2014
- SQL Server 2016
- SQL Server 2017
- SQL Server 2019
- SQL Server 2022
Functionality We Won't Discuss
- Query Store
- Adaptive Query Processing
- Temporal tables
- PolyBase to Hadoop / Azure Blob Storage
- Always Encrypted
- Row-Level Security
- Dynamic Data Masking
- R Services
Agenda
- Ground Rules
- SQL Server 2012
- SQL Server 2014
- SQL Server 2016
- SQL Server 2017
- SQL Server 2019
- SQL Server 2022
Functionality We Won't Discuss
- SQL Server on Linux / Containers
- ML Services and Python support
- Adaptive Query Processing updates: batch mode and interleaved execution
- Graph database
- Distributed availability groups
Agenda
- Ground Rules
- SQL Server 2012
- SQL Server 2014
- SQL Server 2016
- SQL Server 2017
- SQL Server 2019
- SQL Server 2022
Functionality We Won't Discuss
- Intelligent Query Processing
- Memory-optimized TempDB metadata
- Accelerated Database Recovery
- Batch mode on rowstore operations
- PolyBase to ODBC
- UTF-8 support
- ML Services and Java support
Agenda
- Ground Rules
- SQL Server 2012
- SQL Server 2014
- SQL Server 2016
- SQL Server 2017
- SQL Server 2019
- SQL Server 2022
Functionality We Won't Discuss
- Intelligent Query Processing updates
- Parameter sensitive plan optimization
- Degree of parallelism feedback
- Cardinality estimation feedback
- Query Store hints
- Ledger tables
- Purview and Synapse integration
- Managed Instance link
- PolyBase to APIs (S3, Azure Blob Storage, Azure Data Lake Storage Gen2)
Wrapping Up
The T-SQL language has changed a lot in the past decade. Between new functionality and enhancements to the existing core language, there are plenty of opportunities to work with existing code bases and make them better.