Rajendra Gupta
SQL Server 2019 features

Overview of SQL Server 2019 General Availability and installation

November 19, 2019 by

Introduction

On November 4th, 2019, during the Ignite conference at Orlando, Microsoft released the General Availability of its flagship product Microsoft SQL Server 2019. SQL 2019 provides various enhancements to its core database engine and offers integration with Big data (Apache Spark, Data Lake), Machine learning, Linux/container compatibility with Kubernetes.

Microsoft is very excited about this new release as it takes a big leap in the integration of the database engine with other exciting features and technologies.

SQL Server 2019 features

We can download the General Availability release from the link by clicking on Try now:

Download SQL 2019

SQL 2019 release history

In the following table, we can get information about SQL 2019 releases, build versions and released dates:

Build Name

Build version

Released date

Servicing Update for SQL Server 2019 RTM

15.0.2070.41

2019-11-04

General Availability – GA

15.0.2000.5

2019-11-04

Release candidate refresh for Big data cluster

15.0.1900.47

2019-08-29

Release candidate -1

15.0.1900.25

2019-08-21

Microsoft SQL Server 2019 Community Technology Preview 3.2

15.0.1800.32

2019-07-24

Microsoft SQL Server 2019 Community Technology Preview 3.1

15.0.1700.37

2019-06-26

Microsoft SQL Server 2019 Community Technology Preview 3.0

15.0.1600.8

2019-05-17

Microsoft SQL Server 2019 Community Technology Preview 2.5

15.0.1500.28

2019-05-17

Microsoft SQL Server 2019 Community Technology Preview 2.4

15.0.1400.75

2019-03-16

Microsoft SQL Server 2019 Community Technology Preview 2.3

15.0.1300.359

2019-02-15

Microsoft SQL Server 2019 Community Technology Preview 2.2

15.0.1200.24

2019-12-05

Microsoft SQL Server 2019 Community Technology Preview 2.1

15.0.1100.94

2018-11-01

Microsoft SQL Server 2019 Community Technology Preview 2.0

15.0.1000.34

2018-09-18

Let us explore in brief new features of SQL Server 2019.

Database engine enhancements

SQL Server 2019 supports various database engine enhancements over previous versions.

Compatibility

SQL 2019 has compatibility with SQL Server on Azure VMs, Azure SQL Database Azure, SQL Database Edge. Azure SQL Database Edge is a preview version of SQL running on edge devices supporting ARM processors.

Intelligent Query Processing

It extends the SQL Server 2017 Intelligent Query Processing (IQP) feature with the new database compatibility level 150.

Batch mode on row store

It provides batch mode execution for data analytics. It does not use columnstore indexes. We can use this feature where the column store index creates overhead for the data workload.

Row Mode Memory grants feedback

SQL Server takes feedback from query executions and uses it for granting optimizes memory allocations in subsequent queries. You can refer to the article Row Mode Memory Grant Feedback in SQL Server 2019 for more details.

Table variable deferred compilation

It uses the actual cardinality in a subsequent execution of a table variable as feedback from the first query compilation.

Scalar UDF inlining

It improves the performance of a scalar user-defined function with transformation in a relational expression. You can refer to Improvements of Scalar User-defined function performance in SQL Server 2019 for it.

Approximate query processing

It provides a new function such as Approx_Count_Distinct for providing an approximate number of row counts for improving overall performance. You can refer to article The new SQL Server 2019 function Approx_Count_Distinct.

Lightweight query profiling

SQL Server 2017 introduced lightweight query profiling for collecting query runtime statistics with a minimal resource overhead. It requires enabling a trace flag 7412. SQL Server 2019 enables lightweight query profiling for all sessions by default. Read more about it in Lightweight performance profiling in SQL Server 2019 article.

Silent data Truncation

In previous versions of SQL Server, it truncates the data if it exceeds the column length. It is a tedious and frustrating task for SQL Server developers because SQL Server does not give information about data that caused this issue. SQL Server 2019 provides useful information for troubleshooting purposes. Refer article SQL truncate enhancement: Silent Data truncation in SQL Server 2019 for this information.

In-memory improvements

SQL Server provides many enhancements for in-memory features. It provides performance gains for memory-optimized tables, natively compiled stored procedures, and in-memory clustered columnstore indexes.

Memory-optimized TempDB

SQL Server 2019 provides memory-optimized TempDB metadata in removing bottlenecks for TempDB heavy workloads. You can refer to Memory-Optimized TempDB Metadata in SQL Server 2019 article for more details.

Hybrid buffer pool

SQL Server 2019 supports a hybrid buffer pool to access data pages stored on persistent memory (PMEM) devices. It eliminates the process of copying the data page in the buffer pool from the disk. SQL Server supports PMEM devices both on Windows and on Linux OS.

Accelerated Database Recovery

Before SQL Server, database recovery or rollback takes a long time for a significant transaction or SQL Service restart. It is a painful situation for DBAs for massive production databases. SQL Server provides instant database recovery in such cases using new feature Accelerated database recovery. Refer to article, Accelerated Database Recovery; Instant Rollback and Database Recovery for more details.

Columnstore Index Enhancements

SQL Server provides columnstore index enhancements for:

High Availability Solutions

SQL Server 2019 provides the following enhancements for improving disaster recovery and high availability solutions.

Five synchronous replica pairs

SQL 2019 supports one primary and four secondary replicas in synchronous mode. It also allows automatic failover between these replicas.

Secondary to primary replica connection redirection

SQL 2019 supports connection redirection from secondary to a primary replica without SQL listener as well.

Enhanced database-level health detection for AG groups

SQL 2019 improves database health detection for the Availability group databases. It initiates a failover in case of errors in health detection.

High availability solution with remote storage on Kubernetes

SQL Server 2019 allows configuring AG groups using Kubernetes as an orchestration layer. It also provides database health detection for errors and failover if needed.

Big Data Clusters

SQL 2019 supports the configuration of scalable clusters, Spark and HDFS containers. We can use T-SQL to process big data. It enables us to analyze a high volume of big data. It also supports SQL Server on Linux, Hadoop, and Kubernetes.

Enhanced PolyBase

SQL Server 2019 provides feature enhancements to PolyBase and integrates with various data sources such as Oracle, MongoDB, HDFS, ODBC based data sources. You can refer the following articles for more details:

SQL Server Security and compliance

SQL Server has the lowest number of security vulnerabilities for 2010-2019 as per the National Institute of Standards and Technology (NIST).

SQL 2019 provides the following enhancements for security and compliance.

Certificate Management

SQL Server 2019 is integrated with the certificate management and provides benefits such as:

  • View and validate SSL certificates
  • Check certificate expiration dates
  • Deploy certificate for Always on Availability groups
  • Deploy certificate for failover cluster instance

Read more about it using Certificate Management in SQL Server 2019.

SQL Vulnerability Assessment

We can use this tool for assessment, track and remediate database vulnerability issues in SQL Server. It is available in SSMS 17.4 or later versions. Read more about What’s new in SSMS 17.5; Data Discovery and Classification and more.

SQL Data Discovery and Classification

We can classify database columns and provide labels such as public, general, and confidential. It is helpful for regulatory requirements such as GDPR. Read more about SQL data classification – Add sensitivity classification in SQL Server 2019

Always Encrypted with Secure Enclaves

SQL Server 2019 introduces Secure Enclaves in Always Encrypted technology. It protects the sensitivity of data while initial data encryption using Always Encrypted feature of SQL Server. We can also do data computation or mathematical operations, pattern matching, range comparisons as well on secure data.

SQL Server on Linux

SQL Server 2017 and 2019 works on cross-platform operation systems such as Windows and Linux. It provides the following enhancements in SQL 2019 Linux version:

  • SQL Server on Linux can acts in the transactional, merge, and snapshot replication. We can use it publisher, distributor or subscriber role
  • SQL Server 2019 Linux supports Change Data Capture (CDC) feature as well for insert, update and delete activity recording
  • It also supports distributed transactions using Microsoft distributed transaction coordinator (MSDTC)
  • SQL 2019 Linux supports machine learning languages such as Python, R Scripts
  • It also supports PolyBase for configuration of external data sources for Oracle, MongoDB, Teradata and ODBC based data source
  • SQL 2019 also supports TempDB configuration in Linux instance similar to a Windows-based instance

You can follow these articles for more details about SQL 2019 on Linux:

Graph database enhancements

SQL Server supports graph databases for a complicated relationship, and hierarchical data.SQL 2019 enhances its capabilities using edge constraints, MATCH predicates, SHORTEST_PATH and derived tables support in the graph match query. Read more about in using Graph Database features in SQL Server 2019.

Enhanced License benefit

SQL Server 2019 customer with software assurance program gets the following benefits:

  • It provides one free passive SQL Server license for high availability or DR
  • It also provides a free passive asynchronous SQL Server license for DR purpose on a separate OS as well
  • We can also use free asynchronous replica in a disaster recovery environment

Refer to article New high availability and disaster recovery benefits for SQL Server for more details.

software assurance program

Installation changes

We see changes in SQL Server installation with every release. Microsoft’s focus is to make the installation more straightforward, easy to use with maximum user-friendly configurations. In previous versions, we did TempDB configurations during the installation of SQL Server.

In the article, SQL Server 2019 overview and installation, we installed SQL Server vNext CTP 2.0. SQL 2019 is in General Availability phase now, and we should look at the installation changes. You can follow the article for installation; however, I will highlight the differences in the setup.

Feature Selection

You can see below SQL Server vNext CTP 2.0 feature selection screen:

SQL Server vNext CTP 2.0

In the General Availability release, we can see a new language option Java in machine learning services:

SQL Server GA language

If we select Java language, we get JRE 11.0.3 installation option in the installation process:

JRE installation

Database Engine Configurations

In the previous setup, we get the following options in the database engine configurations:

  • Server configuration
  • Data directories
  • TempDB
  • FILESTREAM

Specify Data Directories for database files, log files and backups

In the General Availability release setup, we get two new options in the database engine configuration.

  • MaxDOP
  • Memory

MAXDOP and memory configurations

Click on MaxDOP, and it gives you the configuration for the max degree of parallelism. It detects the logical CPU on OS and displays the recommendation for the MAXDOP configuration. You can modify it as per your requirement, but you should be careful while changing the recommended value.

You can also click on the hyperlink specified in the page for reference purpose:

MAXDOP configuration

Next, click on the Memory tab. On this page, you can configure the minimum and maximum memory configurations for SQL Server. Usually, DBA sets the min and max memory after the installation. Sometimes if you forget to set the memory configuration, you face high memory consumptions by SQL Server processes, and it might cause issues for you in terms of high memory alerts. SQL Server 2019 provides flexibility to do memory configurations during installation. It is also beneficial for a junior DBA’s as well because you can use the recommended value provided by the SQL installer:

Memory configuration

You can choose either recommended or default memory configuration. If you use the recommended configuration, you need to accept the recommended memory configuration using the checkbox.

Conclusion

SQL Server 2019 provides many exciting features. It integrates SQL Server relational database with big data, data virtualization, analytical capabilities with enhanced performance and troubleshooting support. You should explore it in the test environment and be familiar with the solutions provided. You can also follow SQLShack for being updated with SQL Server 2019 features.

Rajendra Gupta

Rajendra Gupta

Rajendra has 8+ years of experience in database administration having a passion for database performance optimization, monitoring, and high availability and disaster recovery technologies, learning new things, new features.

While working as a Senior consultant DBA for big customers and having certified with MCSA SQL 2012, he likes to share knowledge on various blogs.
He can be reached at rajendra.gupta16@gmail.com

View all posts by Rajendra Gupta
Rajendra Gupta

Latest posts by Rajendra Gupta (see all)

451 Views