What’s new with SQL Server

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

Big Data Working with Terabytes in SQL Server Andrew Novick
A Guide to SQL, Seventh Edition. Objectives Create a new table from an existing table Change data using the UPDATE command Add new data using the INSERT.
SQL Server 2005 Database Engine Sommarkollo Microsoft.
Managing and Monitoring SQL Server 2005 Shankar Pal Program Manager SQL Server, Redmond.
Database Security and Auditing: Protecting Data Integrity and Accessibility Chapter 6 Virtual Private Databases.
Security David Frommer Principal Architect Business Intelligence Microsoft Partner of the Year 2005 & 2007.
Table Indexing for the.NET Developer Denny Cherry twitter.com/mrdenny.
Denny Cherry twitter.com/mrdenny.
Transactions, Roles & Privileges Oracle and ANSI Standard SQL Lecture 11.
A Guide to SQL, Eighth Edition Chapter Six Updating Data.
Chapter 6 Virtual Private Databases
Or How I Learned to Love the Cube…. Alexander P. Nykolaiszyn BLOG:
SQL Basics Review Reviewing what we’ve learned so far…….
In this session, you will learn to: Create and manage views Implement a full-text search Implement batches Objectives.
SQL Server 2016 Security Features Marek Chmel Microsoft MVP: Data Platform Microsoft MCT: Regional Lead MCSE: Data Platform Certified Ethical Hacker.
Doing fast! Optimizing Query performance with ColumnStore Indexes in SQL Server 2012 Margarita Naumova | SQL Master Academy.
Best Practices for Columnstore Indexes Warner Chaves SQL MCM / MVP SQLTurbo.com Pythian.com.
Session Name Pelin ATICI SQL Premier Field Engineer.
Database Design: Solving Problems Before they Start! Ed Pollack Database Administrator CommerceHub.
Introducing Hekaton The next step in SQL Server OLTP performance Mladen Prajdić
Use Cases for In-Memory OLTP Warner Chaves SQL MCM / MVP SQLTurbo.com Pythian.com.
Azure SQL Database Updates
Introduction to Partitioning in SQL Server
Recommended Practices & Fundamentals
SQL Query Getting to the data ……..
Standard/Express edition
All about JSON Scenarios and value proposition for JSON data enabled in Azure SQL Database and SQL Server Ralph Kemperdick Digital Business Architect,
In-Memory Capabilities
DBAs vs Developers: JSON in SQL Server
Temporal Databases Microsoft SQL Server 2016
What’s new in SQL Server 2017 for BI?
Thank You! #sqlsatdnipro Denis
- for the SSASMD Developer
SQL Server 2017 Graph Database Inside-Out
Making Developers lives easier with SQL Server 2016
UFC #1433 In-Memory tables 2014 vs 2016
Dynamic SQL: Writing Efficient Queries on the Fly
Solving the Hard Problems
Module 4: Creating and Tuning Indexes
Making Developers lives easier with SQL Server 2016
Making Developers lives easier with SQL Server 2016
A developers guide to Azure SQL Data Warehouse
Working with Very Large Tables Like a Pro in SQL Server 2014
Migrating a Disk-based Table to a Memory-optimized one in SQL Server
What is the Azure SQL Datawarehouse?
Please support our sponsors
Table Indexing for the .NET Developer
SQL 2014 In-Memory OLTP What, Why, and How
Introduction to partitioning
A developers guide to Azure SQL Data Warehouse
Dynamic SQL: Writing Efficient Queries on the Fly
DBAs vs Developers: JSON in SQL Server
The PROCESS of Queries John Deardurff
A JSON’s Journey through SQL Server
Microsoft SQL Server 2014 for Oracle DBAs Module 7
Transact SQL Performance Tips
In Memory OLTP Not Just for OLTP.
Understanding Transaction Isolation Levels
JSON for the Data Mortal
Stretch Database - Historical data storage in SQL Server 2016
Chapter 7 Using SQL in Applications
SQL Server 2016 Security Features
Chapter 11 Managing Databases with SQL Server 2000
Applying Data Warehouse Techniques
Michelle Haarhues Keeping up with SSMS.
What’s new with SQL Server
Applying Data Warehouse Techniques
Advanced Database Topics
SQL Server Indexing for the Client Developer
Presentation transcript:

What’s new with SQL Server A catchup guide for developers (2014-2017)

About me Bill Fellows Owner Sterling Data Consulting (happy to take your money) SQL Server 7 - current Microsoft Data Platform MVP Loves: SSIS, TSQL, Python, problem solving bill.fellows@sterlingdataconsulting.com @billinkc 816.200.7682 Not me

About you Developer A busy developer Interested in how and when to use a feature

Agenda New SQL Server engine features for developers 2014 2016 2017

2014 2014 2016 2017 ColumnstoreIndex Memory Optimized Objects Select Into 2014 2016 2017

Clustered Columnstore Index Updateable Compressable for low cardinality 1M rows or more Column elimination Background custodial processes Niko really likes Columnstore indexes http://www.nikoport.com/columnstore/ Easy primer https://blogs.sentryone.com/melissacoates/overview-columnstore-indexes-sql-server/ 2014 2016 2017

2014 2016 2017

In-Memory OLTP 2014 2016 2017 Tables Table Variables Procedures ACID compliant; different implementation Durable vs non-durable Use case: staging tables for ETL https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/in-memory-oltp-in-memory-optimization?view=sql-server-2014 https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/memory-optimized-tables?view=sql-server-2014 https://sqljudo.wordpress.com/2015/03/10/tsql-tue-64-tuning-ssis-with-in-memory-stage/ 2014 2016 2017

Select Into Parallel insert now available with SELECT INTO Why? Speed Why not? Havoc on source control 2014 2016 2017

2016 2014 2016 2017 Always Encrypted Create or Alter Dynamic Data Masking Drop if Exists FormatMessage JSON R SessionContext String Split/Escape Truncate partition 2014 2016 2017

Always Encrypted 2014 2016 2017 Finally, the DBA is defeated! Always Encrypted provides a separation between those who own the data (and can view it) and those who manage the data (but should have no access) Trivial to implement Database Application Add key Add property to connection string Run encryption wizard Parameterize queries Almost. Denver was more clever than me Also, make sure the patient name is deterministic 2014 2016 2017

Create or alter 2014 2016 2017 Syntactic sugar No longer have to have two different commands for changing objects STORED PROCEDURES FUNCTIONS TRIGGERS VIEWS 2014 2016 2017

Dynamic data masking Super important note from Books Online 2014 2016 Dynamic Data Masking is a lightweight feature that allows the obscuring of data without physically changing it. Default Email Partial Random Super important note from Books Online Dynamic Data Masking should not be used as an isolated measure to fully secure sensitive data from users running ad-hoc queries on the database. It is appropriate for preventing accidental sensitive data exposure, but will not protect against malicious intent to infer the underlying data. https://docs.microsoft.com/en-us/sql/relational-databases/security/dynamic-data-masking?view=sql-server-2017 2014 2016 2017

Drop if exists 2014 2016 2017 More syntactic sugar! Wider range of objects Sorry about your permissions AGGREGATE ASSEMBLY DATABASE DEFAULT FUNCTION INDEX PROCEDURE ROLE RULE SCHEMA SECURITY POLICY SEQUENCE SYNONYM TABLE TRIGGER TYPE USER VIEW 2014 2016 2017

FORMATMESSAGE Now allows for a subset of C style formatters Similar to RAISERROR but allows for further formatting https://docs.microsoft.com/en-us/sql/t-sql/functions/formatmessage-transact-sql?view=sql-server-2017 2014 2016 2017

JSON 2014 2016 2017 All the joy of XML in fewer characters. {"CollectionName": [ {"number":1,"type":"A","foo":null} , {...} ] } ISJSON JSON_VALUE JSON_QUERY JSON_MODIFY OPENJSON 2014 2016 2017

R 2014 2016 2017 External processing, all on local server. Avoids leaky data Requires service restart 2014 2016 2017

Row Level Security 2016 introduced a new object, SECURITY POLICY. Security policies allow you to block actions and force filtering by writing custom functions 2014 2016 2017

SESSION_CONTEXT Like CONTEXT_INFO, but better. Key-value pairs of text instead of a single bitmasked values https://docs.microsoft.com/en-us/sql/t-sql/functions/session-context-transact-sql?view=sql-server-2017 https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-set-session-context-transact-sql?view=sql-server-2017 2014 2016 2017

STRING_SPLIT and STRING_ESCAPE String splitting will shred a column into multiple rows SELECT * FROM STRING_SPLIT('1,2,3,4,5', ',') AS Demo; String escaping will replace invalid characters with their entity values. Applicable to JSON SELECT STRING_ESCAPE('Hello tab' + CHAR(9)+'world', 'json'); What’s missing? https://docs.microsoft.com/en-us/sql/t-sql/functions/string-split-transact-sql?view=sql-server-2017 https://docs.microsoft.com/en-us/sql/t-sql/functions/string-escape-transact-sql?view=sql-server-2017 2014 2016 2017

TRUNCATE Truncate can now target a specific partition(s) TRUNCATE TABLE dbo.PartitionDemo WITH (PARTITIONS (2, 4, 6 TO 8)); https://docs.microsoft.com/en-us/sql/t-sql/statements/truncate-table-transact-sql?view=sql-server-2017 2014 2016 2017

2017 2014 2016 2017 CLR COMPRESS/DECOMPRESS Graph Processing Linux Python SELECT INTO STRING_AGG 2014 2016 2017

CLR Now runs on Linux And we completely changed out how permissions worked 2014 2016 2017

COMPRESS DECOMPRESS Now you can zip/unzip natively within TSQL using GZIP algorithm 2014 2016 2017

Graph processing Graph processing has nothing to do with visualizations Everything to do with relationships Nodes Edges 2014 2016 2017

Linux SQL Server runs on Linux 2014 2016 2017

Python 2014 2016 2017 sys.sp_execute_external_script returns! Rampant speculation, what other languages might we specify in v.Next? 2014 2016 2017

SELECT INTO (again) Specify target filegroup 2014 2016 2017

STRING_AGG Combines multiple rows of data using a delimter Classic approach involves undocumented behavior from FOR XML PATH clause 2014 2016 2017

Be sure to give our sponsors some #SQLLove

Thank you Visit the sponsors Patch your servers https://github.com/billinkc/presentations/tree/master/WhatsNew https://github.com/billinkc/presentations/tree/master/WhatsNew