SlideShare a Scribd company logo
1 of 70
Download to read offline
SQL Server 2019 CPT2.4
Gianluca Hotz
ghotz@ugiss.org | @glhotz
Sponsors
Who am I?
• Gianluca Hotz | @glhotz | ghotz@ugiss.org
• Independent Consultant, Founder and Mentor SolidQ
• 20+ years on SQL Server (from 4.21 in 1996)
• Database modeling and development, sizing and administration, upgrade and
migration, performance tuning
• Interests
• Relational model, DBMS architecture, Security, High Availability and Disaster
Recovery
• Community
• 20 years Microsoft MVP SQL Server (from 1998)
• Founder and President UGISS
• User Group Italiano SQL Server (PASS Chapter)
Configuration
Installation
• Most new things in 2016/2017
• Separate downloads
• IFI and tempdb configuration
• Linux
• R and Python integration
• Integration Services Scale-out
• Polybase
PolyBase Java Connector for HDFS
SQL Server on Linux
• Replication support
• Snapshot, Transactional and Merge
• Support for Microsoft Distributed Transaction Coordinator (MSDTC)
• Always On Availability Group on Docker containers with Kubernetes
• Kubernetes operator deploys StatefulSet including container with mssql-
server container and health monitor
• OpenLDAP support for third-party AD providers
• Machine Learning Services (In-Database) on Linux
• New container registry
HA solution in Azure Kubernetes Service
Polybase
• Data Virtualization
• External Data Source
• External Tables
• SQL Server 2016+
• Azure Blob Storage, Hadoop
• SQL Server 2019
• SQL Server (all flavors), Oracle, Teradata, MongoDB, CosmosDB (Mongo API)
• ODBC Generic Type (e.g. DB2, SAP Hana, Excel, …)
External Tables vs Linked Servers
External Tables
Database Scoped
ODBC Drivers
Read-only*
Scale out queries with push-down
Failover with AG
Basic authentication
Distributed Transactions not supported
Linked Servers
Instance Scoped
OLEDB Providers
Read/write
Single threaded queries with push-down
Requires separate config from AG
Basic and integrated authentication
Distributed Transactions supported
Polybase Scale-Out Groups
SQL Server 2019
Big Data Clusters (Preview)
Compute pool
SQL Compute
Node
SQL Compute
Node
SQL Compute
Node
…
Compute pool
SQL Compute
Node
IoT data
Directly
read from
HDFS
Persistent storage
…
Storage pool
SQL
Server
Spark
HDFS Data Node
SQL
Server
Spark
HDFS Data Node
SQL
Server
Spark
HDFS Data Node
Kubernetes pod
Analytics
Custom
apps BI
SQL Server
master instance
Node Node Node Node Node Node Node
SQL
Data mart
SQL Data
Node
SQL Data
Node
Compute pool
SQL Compute
Node
Storage Storage
Polybase in Big Data Cluster vs Stand-alone
Feature Big data cluster Stand alone
Create external data source for SQL Server, Oracle, Teradata, and Mongo DB X X
Create external data source using a compatible third-party ODBC Driver X
Create external data source for HADOOP data source X X
Create external data source for Azure Blob Storage X X
Create external table on a SQL Server data pool X
Create external table on a SQL Server storage pool X
Scale-out query execution X X
Other Services
• Master Data Services
• Silverlight controls replaced with HTML
• SQL Server Machine Learning Services
• Windows Server Failover Cluster support
• Partition-Based modeling
Administration
Tools
• SQL Server Management Studio V18 (Release Candidate 1)
• Azure Data Studio (was Operations Studio)
Resumable online index operations
• Resume after failure (e.g. out of disk space)
• Pause and resume later (e.g. free temporarily resources)
• Manage large indexes using less log an shorter transactions
• Fit rebuild operations into limited maintenance windows
• REBUILD
WITH (ONLINE = ON, RESUMABLE = ON, MAX_DURATION = 30 MINUTES);
• SQL Server 2017+ Resumable Index Rebuild
• SQL Server 2019+ Resumable Index Create
Transparent Data Encryption
• ALTER DATABASE … SET ENCRYPTION SUSPEND
• ALTER DATABASE … SET ENCRYPTION RESUME
Columnstore Indexes
• Online build/rebuild Clustered Columnstore
• E.g. conversion from row-store to Columnstore
DBCC CLONEDATABASE
• Instantaneous schema-only copy of a database for troubleshooting
• No data, full-schema, statistics and Query Store
• Non-blocking
• Read-only by default (can be changed)
• Optionally NO_STATISTICS, NO_QUERYSTORE
• SQL Server 2012 SP4, 2014 SP2 CU3, 2016 SP1, 2017
• New in SQL Server 2019
• Columnstore Statistics
Accelerated Database Recovery
• Benefits
• Fast and consistent database recovery
• Number/size of active transactions don’t impact recovery time
• Instantaneous transaction rollback
• Active time and number of updates don’t impact rollback time
• Aggressive Log Truncation
• Even with long running transactions, prevents growing out of control
• High level
• Versioning all physical database modifications
• Only logical operations undone (are limited and can be undone instantly)
• Active transactions at crash time are marked as aborted
• Any versions generated aborted transactions can be ignored user queries
• Currently available in Preview in Azure SQL Database and CTP2.3+!
Accelerated Database Recovery Components
• Persisted Version Store (PVS)
• New version store, stored in the database instead of tempdb
• Enable also resource isolation
• Logical Revert
• Asynchronous process performing row level version based undo
• Keeps track of all aborted transactions
• Performs rollback using PVS
• Releases all locks immediately after transaction abort
• sLog
• Secondary log stream storing log records for non versioned operations
• Low volume and in-memory
• Serialized on disk during CHECKPOINT
• Enables aggressive transaction log truncation
• Cleaner
• Asynchronous process that cleans page versions
Current database recovery process
Accelerated database recovery process
Improved diagnostic data for stats blocking
• Query Waiting for synchronous update operations
• Now sys.dm_exec_requests shows SELECT (STATMAN)
• New WAIT_ON_SYNC_STATISTICS_REFRESH wait stat
Availability Groups Enhancements
• More synchronous replicas
• SQL Server 2012 4 replicas, 2 synchronous
• SQL Server 2014 8 replicas, 2 synchronous
• SQL Server 2017 8 replicas, 3 synchronous
• SQL Server 2019 8 replicas, 5 synchronous
• Secondary-to-primary read/write redirection
• READ_WRITE_ROUTING_URL and ApplicationIntent=ReadWrite (default)
• Killer feature to replace Listener
• Cluster technology not offering listener-like features
• Multi-subnet scenarios too complex to setup/maintain (e.g. Pacemaker)
• Read scale-out or DR with cluster type NONE
Storage Class Memory / PMEM
• Allows low latency I/O
• memory-mapped memcpy-like operations in user mode
• SQL Server 2016 SP1
• NVDIMM-N for tail of the log caching
• SQL Server 2019
• PMEM devices Linux
• support for data, log In-Memory OLTP checkpoint files placement
• Hybrid Buffer Pool
• Clean pages direct referenced on PMEM devices without copy
• Dirty pages still kept in DRAM
Estimating Data Compression savings
• sp_estimate_data_compression_savings
• Returns specified object’s current size and estimates
• SQL Server < 2019
• ROW and PAGE compression
• SQL Server 2019+
• Adds COLUMNSTORE and COLUMNSTORE_ARCHIVE compression
• Object type determines Columnstore type
• E.g. Heap -> Clustered, Clustered index -> Clustered
Query Profiling Infrastructure
• Run-time information on query execution plans
• E.g. live query statistics
• Lightweight profiling
• introduced in SQL Server 2014 SP2, 2016 SP1+
• 2% expected CPU overhead vs. 75%
• SQL Server 2019+
• Enabled by default
• XEvents query_post_execution_plan_profile (vs query_post_execution_showplan)
• DMF sys.dm_exec_query_plan_stats() last known *actual* execution plan
Internal database pages information
• Undocumented DBCC PAGE
• New in SQL Server 2019
• sys.dm_db_page_info(DatabaseId, FileId, PageId, Mode)
• page_resource column in sys.dm_exec_requests and sys.sysprocesses
• sys.fn_PageResCracker(page_resource) to get db_id, file_id, page_id
Demo
• Compression Savings
• Internal Pages Information
Development
Truncation error messages
• Error message 8152 too generic
• String or binary data would be truncated
• SQL Server 2019 introduces message 2628
• String or binary data would be truncated in table '%.*ls', column '%.*ls'.
Truncated value: '%.*ls’
• Enabled with Trace Flag 460
• Opt-in required to avoid breaking parsing applications
Extensibility Framework
• Secure external script execution
• Scale/optimization opportunities
• SQL Server integration (e.g. store procedures, PREDICT)
• Language Support
• SQL Server 2016+ Support for R
• SQL Server 2017+ Support for Python
• SQL Server 2019+ Support for Java
Extensibility Framework Components
• Launchpad Service
• One per SQL Server instance (with Machine Learning Services)
• Provides security isolation
• BxlServer
• Manage communications between SQL Server and external processes
• Binary Exchange Language data format
• SQLSatellite
• Extensibility API used by BxlServer
• I/O data/arguments , error handling
Java Language extension
• Leverages Extensibility Framework
• Through sp_execute_external_script
• Current support
• On Windows version 1.10 (JRE 10, JDK 10)
• On Linux version 1.8 (JRE 8, JDK 8)
UTF-8 Support
• Full support for import/export, collations, replication, …
• Still not for Linked Servers, In-Memory OLTP, External Table (Polybase)
• CHAR and VARCHAR support (Windows collations only)
• UTF8 in collation names
• E.g. LATIN1_GENERAL_100_CI_AS_SC_UTF8
• Can provide storage savings
• E.g. up to 50% from NCHAR(10) to CHAR(10) with UTF8 vs UTF16
SQL Graph enhancements
• Derived tables and view support in MATCH queries
• Set of nodes/edges using UNION ALL
• Useful for heterogeneous entities or connections between
them
• MATCH support in MERGE
• Edge Constraints
• CONNECTION constraint
Demo
• Java integration
Security
Certificate Management
• Extended in SQL Server Configuration manager
• View and validate certificates installed
• View certificates close to expiration
• Deploy Certificates across machine in Availability Groups
• Deploy Certificates across machine in Failover Cluster Instances
SQL Data Discovery and Classification
• SQL Server management Studio Tool (V17.5)
• Discovery & Recommendations, Labeling, Reporting
• Metadata con be persisted and queried
• Based on Extended Properties
• sys_information_type_name, sys_sensitivity_label_name
• Support for SQL Server 2008+ and Azure SQL Database
SQL Server Sensitivity Classification
• SQL Server 2019+
• (already available in Azure SQL Database)
• T-SQL command ADD|DROP SENSITIVITY CLASSIFICATION
• applies to tables, columns
• LABEL, LAtBEL_ID, INFORMATION_TYPE, INFORMATION_TYPE_ID
• Metadata stored in sys.sensitivity_classifications
• SQL Server Audit add column data_sensitivity_information
Data Discovery and Classification Demo
Always Encrypted with Secure Enclaves
• Basic architecture as SQL Server 2016+ implementation
• Now allows server-side computation on encrypted columns
• In-Place Encryption (ALTER TABLE for initial encryption)
• Rich computations (e.g. range comparisons, LIKE predicates, …)
• Inside secure enclaves
• Virtualization-based Security (VBS) secure memory enclaves
• also known as Virtual Secure Mode(VSM) enclaves
• Operation on plaintexts cannot be disclosed outside enclave
• Column Master Keys sent over secure channel by client driver
• Still some limitations (no indexing)
• Performance optimizations pending…
Data Masking
Dynamic Data Masking
• On the original database
• Original data intact
• On-the-fly at query time
• Based on user permissions
Static Data Masking
• On a copy of the database
• Original data not retrievable
• At storage level
• Masked for everyone
Static Data Masking
• Component of SQL Server Management Studio V18 Preview5+
• Define per-column masking configuration
• NULL, Single-Value, Shuffle, Group Shuffle, String Composite
• Can save and load it
• It’s basically a backup/restore and modify data according to config
• No automation yet 
Static Data Masking Limitations
• No temporal and memory-optimzed tables
• No computed and identity columns
• No geometry and geography types
• Azure SQL Database Hyperscale service tier not supported
• Statistics not updated
• No cleanup in case of error
• can leave sensitive data copies (backupset)
• Data and log files may contain sensitive data
• retrievable with hex editor
Demo
• Data Classification
Performance
Intelligent Query Processing
Intelligent QP
Adaptive QP
Adaptive Joins Batch Mode
Interleaved
Execution
Memory Grant
Feedback
Row Mode Batch Mode
Approximate
QP
Approximate
Count Distinct
Table Variable
Deferred
Compilation
Batch Mode
on Row Store
Scalar UDF
Inlining
Execution Modes
• Row Mode
• Execution tree iterators consume 1 row at a time
• Traditional execution mode for Rowstore
• Batch Mode
• Execution tree iterators consume a batch of rows at a time
• Optimal with large scan operations (e.g. large table aggregates or joins)
• SQL Server 2012 introduced to leverage Columnstore Indexes
• SQL Server 2016/2017 extended usage scenarios for CI
• SQL Server 2019 extended usage scenarios to Rowstore
Batch Mode on RowStore
• Help reducing CPU Consumption
• Columnstore still a better choice
• for OLAP workload that is I/O bound
• can’t always create it (e.g. impact on OLTP, features not supported)
• Limitations
• In-Memory tables not supported (only heaps & disk-based b-trees)
• Not used when fetching/filtering LOB columns
• (including sparse columns sets & XML)
Batch Mode on Rowstore Control
• SQL Server < 2019
• Some scenarios covered with tricks… (article part1, part2, part3)
• SQL Server 2019+
• Scenarios supported directly by Query Processor
• On by default with database compatibility level 150+
• ALTER DATABASE SCOPED CONFIGURATION
SET BATCH_MODE_ON_ROWSTORE = ON|OFF
• OPTION (USE HINT ('ALLOW_BATCH_MODE’));
• OPTION (USE HINT (‘DISALLOW_BATCH_MODE'));
Memory Grant
• Excessive Grant
• Too much memory allocated vs. memory used
• Impact: blocking, out-of-memory, reduced concurrency
• Poor Grant
• Not enough memory allocated resulting in data spill to tempdb
• Impact: slow query, excessive disk usage (tempdb)
• Grant increase
• dynamic grants increase allocation too much
• impact: server instability, unpredictable performance
Memory Grant Feedback
• Post-execution evaluation
• Updates grant value for cached plan
• E.g. more memory if spilled, less if excessive grant
• Version support
• SQL Server 2017+ Batch Mode
• SQL Server 2019+ Row Mode
• Plan caching
• Not persistent (i.e. not save in Query Store)
• OPTION(RECOMPILE) prevents caching and memory grant feedback
Memory Grant Feedback Control
• Batch Mode
• On by default with database compatibility level 140+
• ALTER DATABASE SCOPED CONFIGURATION
SET BATCH_MODE_MEMORY_GRANT_FEEDBACK = ON|OFF
• OPTION (USE
HINT('DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK'));
• Row Mode
• On by default with database compatibility level 150+
• ALTER DATABASE SCOPED CONFIGURATION
SET ROW_MODE_MEMORY_GRANT_FEEDBACK = ON|OFF
• OPTION (USE HINT ('DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK'));
Troubleshooting Memory Grant Feedback
• Parameter sensitive scenarios
• Some queries requires different plans with different grants
• Memory grant feedback will disable itself when unstable
• Extended Events to monitor changes
• SQL Server 2017+ memory_grant_feedback_loop_disabled
• SQL Server 2019+ memory_grant_updated_by_feedback
• SQL Server 2019+ execution plan attributes
• IsMemoryGrantFeedbackAdjusted
• No: First Execution, Accurate Grant, Feedback disabled
• Yes: Adjusting, Stable
• LastRequestedMemory
Batch mode adaptive joins
• Scenario
• Nested loop algorithm better for small build join inputs
• Hash algorithm better for bigger inputs
• Adaptive joins defer choice after first input scanned
Interleaved Execution
• Problem with multi-statement table valued functions
(MSTVFs)
• SQL Server <= 2012 optimize with cardinality = 1
• SQL Server 2014 & 2016 optimize with cardinality = 100
• SQL Server >= 2017
• Start optimization
• Pause and executes MSTVFs if candidate
• Resume optimization with correct cardinality
Table Variable vs Temporary Tables
Area Temporary Tables Table Variables
Manual statistics creation and update Yes No
Indexes Yes Only inline index definitions allowed
Constraints Yes Only PRIMARY KEY, UNIQUE and CHECK
Automatic statistics creation Yes No
Creating and using a temporary object in a
single batch
Compilation of a statement that references a
temporary table that doesn’t exist is deferred
until the first execution of the statement
A statement that references a table variable
is compiled along with all other statements
before any statement that populates the
Table Variable is executed, so compilation
sees it as 1
Table Variable Deferred Compilation
• Before SQL Server 2019
• Statement referencing TV compiled before population
• Number of row estimate fixed at 1
• Starting with SQL Server 2019
• Behaves like Temporary Tables
• Statement referencing non existing TV is deferred until first execution
• Number of row estimate much better
• Control
• On by default with database compatibility level 150+
• ALTER DATABASE SCOPED CONFIGURATION
SET DEFERRED_COMPILATION_TV = ON|OFF
• OPTION (USE HINT ('DISABLE_DEFERRED_COMPILATION_TV'));
Scalar UDF inlining
• T-SQL user defined functions that returns a single data value
• Performance problems
• Iterative invocation
• once per row, context switching especially with query execution
• Lack of costing
• before, only relational operators were costed, assumption to be cheap…
• Interpreted execution
• each statement executes in isolation, no cross-statement optimizations
• Serial execution
• Intra-query parallelism not allowed
Scalar UDF Automatic inlining
• In SQL Server 2019 Scalar UDF automatically transformed into
• Scalar Expressions
• Scalar Subqueries
• Optimize the whole plan (UDFs no longer visible)
• Control
• On by default with database compatibility level 150+
• ALTER DATABASE SCOPED CONFIGURATION
SET TSQL_SCALAR_UDF_INLINING = ON|OFF
• OPTION (USE HINT ('DISABLE_TSQL_SCALAR_UDF_INLINING'));
• CREATE FUNCTION … WITH INLINE = ON | OFF
Scalar UDF inlining example
Query without UDF Query with UDF (no inlining) Query with UDF (inlining)
Execution time 1.6 seconds 29 minutes 11 seconds 1.6 seconds
CREATE FUNCTION dbo.discount_price(@price DECIMAL(12,2), @discount DECIMAL(12,2))
RETURNS DECIMAL (12,2) AS BEGIN RETURN @price * (1 - @discount); END
SELECT L_SHIPDATE, O_SHIPPRIORITY
, SUM(dbo.discount_price(L_EXTENDEDPRICE, L_DISCOUNT))
FROM LINEITEM, ORDERS
WHERE O_ORDERKEY = L_ORDERKEY
GROUP BY L_SHIPDATE, O_SHIPPRIORITY
ORDER BY L_SHIPDATE
10GB CCI compressed TPC-H Schema, 2 x CPUs (12 cores), 96GB RAM, SSD storage
Scalar UDF inlining requirements
• Written using the following constructs
• DECLARE, SET (var
declaration/assignments)
• SELECT (single/multiple var assignments)
• IF/ELSE (arbitrary nesting levels)
• RETURN (single or multiple)
• UDF nested/recursive function calls
• Relational operations like EXISTS, ISNULL
• No invocation of functions that are
• time-dependent (GETDATE())
• has side effects (NEWSEQUENTIALID())
• Uses EXECUTE AS CALLER (default)
• No table variables references
• No table-valued parameters references
• No user-defined types references
• Not natively compiled
• interop supported
• Not a partition function
• Not referenced in
• GROUP BY clauses
• computed columns
• check constraints
• No signatures added to it
Scalar UDF inlining troubleshoting
• Column is_inlineable in sys.sql_modules
• Doesn’t imply it will always be inlined! (e.g. 1000s lines of code)
• Execution Plan
• If inlined successfully, xml node <UserDefinedFunction> will be missing
• Extended Events
• tsql_scalar_udf_not_inlineable
APPROX_COUNT_DISTINCT
• Returns approximate number of unique non-null values in groups
• HyperLogLog algorithm guarantees
up to 2% error rate within 97% probability
• Fast data exploration with low memory footprint
• E.g. dashboards, trend analysis, feature selection, etc.
• Think 10 billion rows,
1 user using 1,5GB memory vs 100 users using 12MBs
• Tradeoff: precision, only scenarios where exact values are not necessary!
Demo
• Scalar UDF inlining
• APPROX_COUNT_DISTINCT
Q&A

More Related Content

What's hot

Things Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop EcosystemThings Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop EcosystemZohar Elkayam
 
SQL Server 2016 Editions
SQL Server 2016 Editions SQL Server 2016 Editions
SQL Server 2016 Editions Onomi
 
Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016Softchoice Corporation
 
Fontys Lecture - The Evolution of the Oracle Database 2016
Fontys Lecture -  The Evolution of the Oracle Database 2016Fontys Lecture -  The Evolution of the Oracle Database 2016
Fontys Lecture - The Evolution of the Oracle Database 2016Lucas Jellema
 
SQL Server 2016 New Features and Enhancements
SQL Server 2016 New Features and EnhancementsSQL Server 2016 New Features and Enhancements
SQL Server 2016 New Features and EnhancementsJohn Martin
 
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...Tobias Koprowski
 
SQL Explore 2012: P&T Part 3
SQL Explore 2012: P&T Part 3SQL Explore 2012: P&T Part 3
SQL Explore 2012: P&T Part 3sqlserver.co.il
 
2019 - GUOB Tech Day / Groundbreakers LAD Tour - Database Migration Methods t...
2019 - GUOB Tech Day / Groundbreakers LAD Tour - Database Migration Methods t...2019 - GUOB Tech Day / Groundbreakers LAD Tour - Database Migration Methods t...
2019 - GUOB Tech Day / Groundbreakers LAD Tour - Database Migration Methods t...Marcus Vinicius Miguel Pedro
 
Novedades SQL Server 2014
Novedades SQL Server 2014Novedades SQL Server 2014
Novedades SQL Server 2014netmind
 
SQL Server 2017 Enhancements You Need To Know
SQL Server 2017 Enhancements You Need To KnowSQL Server 2017 Enhancements You Need To Know
SQL Server 2017 Enhancements You Need To KnowQuest
 
Products.intro.forum version
Products.intro.forum versionProducts.intro.forum version
Products.intro.forum versionsqlserver.co.il
 
Introduction to Oracle Data Guard Broker
Introduction to Oracle Data Guard BrokerIntroduction to Oracle Data Guard Broker
Introduction to Oracle Data Guard BrokerZohar Elkayam
 
DBaaS with EDB Postgres on AWS
DBaaS with EDB Postgres on AWSDBaaS with EDB Postgres on AWS
DBaaS with EDB Postgres on AWSEDB
 
Columnstore improvements in SQL Server 2016
Columnstore improvements in SQL Server 2016Columnstore improvements in SQL Server 2016
Columnstore improvements in SQL Server 2016Niko Neugebauer
 
SQL Server 2016 novelties
SQL Server 2016 noveltiesSQL Server 2016 novelties
SQL Server 2016 noveltiesMSDEVMTL
 
Adi Sapir ISUG 123 11/10/2012
Adi Sapir ISUG 123 11/10/2012Adi Sapir ISUG 123 11/10/2012
Adi Sapir ISUG 123 11/10/2012sqlserver.co.il
 

What's hot (20)

Things Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop EcosystemThings Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop Ecosystem
 
SQL Server 2016 Editions
SQL Server 2016 Editions SQL Server 2016 Editions
SQL Server 2016 Editions
 
Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016
 
Fontys Lecture - The Evolution of the Oracle Database 2016
Fontys Lecture -  The Evolution of the Oracle Database 2016Fontys Lecture -  The Evolution of the Oracle Database 2016
Fontys Lecture - The Evolution of the Oracle Database 2016
 
SQL Server 2016 New Features and Enhancements
SQL Server 2016 New Features and EnhancementsSQL Server 2016 New Features and Enhancements
SQL Server 2016 New Features and Enhancements
 
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...
 
SQL Explore 2012: P&T Part 3
SQL Explore 2012: P&T Part 3SQL Explore 2012: P&T Part 3
SQL Explore 2012: P&T Part 3
 
2019 - GUOB Tech Day / Groundbreakers LAD Tour - Database Migration Methods t...
2019 - GUOB Tech Day / Groundbreakers LAD Tour - Database Migration Methods t...2019 - GUOB Tech Day / Groundbreakers LAD Tour - Database Migration Methods t...
2019 - GUOB Tech Day / Groundbreakers LAD Tour - Database Migration Methods t...
 
Oracle OpenWo2014 review part 03 three_paa_s_database
Oracle OpenWo2014 review part 03 three_paa_s_databaseOracle OpenWo2014 review part 03 three_paa_s_database
Oracle OpenWo2014 review part 03 three_paa_s_database
 
Novedades SQL Server 2014
Novedades SQL Server 2014Novedades SQL Server 2014
Novedades SQL Server 2014
 
SQL Server 2017 Enhancements You Need To Know
SQL Server 2017 Enhancements You Need To KnowSQL Server 2017 Enhancements You Need To Know
SQL Server 2017 Enhancements You Need To Know
 
Products.intro.forum version
Products.intro.forum versionProducts.intro.forum version
Products.intro.forum version
 
Oow2016 review-13th october 2016
Oow2016 review-13th october 2016Oow2016 review-13th october 2016
Oow2016 review-13th october 2016
 
Oow2016 review-iaas-paas-13th-18thoctober
Oow2016 review-iaas-paas-13th-18thoctoberOow2016 review-iaas-paas-13th-18thoctober
Oow2016 review-iaas-paas-13th-18thoctober
 
Introduction to Oracle Data Guard Broker
Introduction to Oracle Data Guard BrokerIntroduction to Oracle Data Guard Broker
Introduction to Oracle Data Guard Broker
 
DBaaS with EDB Postgres on AWS
DBaaS with EDB Postgres on AWSDBaaS with EDB Postgres on AWS
DBaaS with EDB Postgres on AWS
 
Columnstore improvements in SQL Server 2016
Columnstore improvements in SQL Server 2016Columnstore improvements in SQL Server 2016
Columnstore improvements in SQL Server 2016
 
Oow2016 review-db-dev-bigdata-BI
Oow2016 review-db-dev-bigdata-BIOow2016 review-db-dev-bigdata-BI
Oow2016 review-db-dev-bigdata-BI
 
SQL Server 2016 novelties
SQL Server 2016 noveltiesSQL Server 2016 novelties
SQL Server 2016 novelties
 
Adi Sapir ISUG 123 11/10/2012
Adi Sapir ISUG 123 11/10/2012Adi Sapir ISUG 123 11/10/2012
Adi Sapir ISUG 123 11/10/2012
 

Similar to SQL Server 2019 CTP2.4

Le novità di SQL Server 2022
Le novità di SQL Server 2022Le novità di SQL Server 2022
Le novità di SQL Server 2022Gianluca Hotz
 
Nordic infrastructure Conference 2017 - SQL Server on Linux Overview
Nordic infrastructure Conference 2017 - SQL Server on Linux OverviewNordic infrastructure Conference 2017 - SQL Server on Linux Overview
Nordic infrastructure Conference 2017 - SQL Server on Linux OverviewTravis Wright
 
Gs08 modernize your data platform with sql technologies wash dc
Gs08 modernize your data platform with sql technologies   wash dcGs08 modernize your data platform with sql technologies   wash dc
Gs08 modernize your data platform with sql technologies wash dcBob Ward
 
SCU 2015 - My top 10 favorite items you need to look at in WK2012R2
SCU 2015 - My top 10 favorite items you need to look at in WK2012R2SCU 2015 - My top 10 favorite items you need to look at in WK2012R2
SCU 2015 - My top 10 favorite items you need to look at in WK2012R2Mike Resseler
 
Le novità di sql server 2019
Le novità di sql server 2019Le novità di sql server 2019
Le novità di sql server 2019Gianluca Hotz
 
SQL Server 2019 Editions Datasheet 2
SQL Server 2019 Editions Datasheet 2SQL Server 2019 Editions Datasheet 2
SQL Server 2019 Editions Datasheet 2jarg8
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresqlbotsplash.com
 
Tech-Spark: SQL Server on Linux
Tech-Spark: SQL Server on LinuxTech-Spark: SQL Server on Linux
Tech-Spark: SQL Server on LinuxRalph Attard
 
SQL Server 2017 on Linux Introduction
SQL Server 2017 on Linux IntroductionSQL Server 2017 on Linux Introduction
SQL Server 2017 on Linux IntroductionTravis Wright
 
Grails in the Cloud (2013)
Grails in the Cloud (2013)Grails in the Cloud (2013)
Grails in the Cloud (2013)Meni Lubetkin
 
Presto Strata Hadoop SJ 2016 short talk
Presto Strata Hadoop SJ 2016 short talkPresto Strata Hadoop SJ 2016 short talk
Presto Strata Hadoop SJ 2016 short talkkbajda
 
In-memory ColumnStore Index
In-memory ColumnStore IndexIn-memory ColumnStore Index
In-memory ColumnStore IndexSolidQ
 
How SQL Server 2016 SP1 Changes the Game
How SQL Server 2016 SP1 Changes the GameHow SQL Server 2016 SP1 Changes the Game
How SQL Server 2016 SP1 Changes the GamePARIKSHIT SAVJANI
 
What’s new in SQL Server 2017
What’s new in SQL Server 2017What’s new in SQL Server 2017
What’s new in SQL Server 2017James Serra
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB MeetupMariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB MeetupColin Charles
 
SQL Server vNext on Linux
SQL Server vNext on LinuxSQL Server vNext on Linux
SQL Server vNext on LinuxTravis Wright
 
SQL Server 2019 hotlap - WARDY IT Solutions
SQL Server 2019 hotlap - WARDY IT SolutionsSQL Server 2019 hotlap - WARDY IT Solutions
SQL Server 2019 hotlap - WARDY IT SolutionsMichaela Murray
 
What's new in SQL Server 2017
What's new in SQL Server 2017What's new in SQL Server 2017
What's new in SQL Server 2017Hasan Savran
 
MySQL :What's New #GIDS16
MySQL :What's New #GIDS16MySQL :What's New #GIDS16
MySQL :What's New #GIDS16Sanjay Manwani
 

Similar to SQL Server 2019 CTP2.4 (20)

Le novità di SQL Server 2022
Le novità di SQL Server 2022Le novità di SQL Server 2022
Le novità di SQL Server 2022
 
Nordic infrastructure Conference 2017 - SQL Server on Linux Overview
Nordic infrastructure Conference 2017 - SQL Server on Linux OverviewNordic infrastructure Conference 2017 - SQL Server on Linux Overview
Nordic infrastructure Conference 2017 - SQL Server on Linux Overview
 
Gs08 modernize your data platform with sql technologies wash dc
Gs08 modernize your data platform with sql technologies   wash dcGs08 modernize your data platform with sql technologies   wash dc
Gs08 modernize your data platform with sql technologies wash dc
 
SCU 2015 - My top 10 favorite items you need to look at in WK2012R2
SCU 2015 - My top 10 favorite items you need to look at in WK2012R2SCU 2015 - My top 10 favorite items you need to look at in WK2012R2
SCU 2015 - My top 10 favorite items you need to look at in WK2012R2
 
Le novità di sql server 2019
Le novità di sql server 2019Le novità di sql server 2019
Le novità di sql server 2019
 
SQL Server 2019 Editions Datasheet 2
SQL Server 2019 Editions Datasheet 2SQL Server 2019 Editions Datasheet 2
SQL Server 2019 Editions Datasheet 2
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 
Tech-Spark: SQL Server on Linux
Tech-Spark: SQL Server on LinuxTech-Spark: SQL Server on Linux
Tech-Spark: SQL Server on Linux
 
Exploring sql server 2016
Exploring sql server 2016Exploring sql server 2016
Exploring sql server 2016
 
SQL Server 2017 on Linux Introduction
SQL Server 2017 on Linux IntroductionSQL Server 2017 on Linux Introduction
SQL Server 2017 on Linux Introduction
 
Grails in the Cloud (2013)
Grails in the Cloud (2013)Grails in the Cloud (2013)
Grails in the Cloud (2013)
 
Presto Strata Hadoop SJ 2016 short talk
Presto Strata Hadoop SJ 2016 short talkPresto Strata Hadoop SJ 2016 short talk
Presto Strata Hadoop SJ 2016 short talk
 
In-memory ColumnStore Index
In-memory ColumnStore IndexIn-memory ColumnStore Index
In-memory ColumnStore Index
 
How SQL Server 2016 SP1 Changes the Game
How SQL Server 2016 SP1 Changes the GameHow SQL Server 2016 SP1 Changes the Game
How SQL Server 2016 SP1 Changes the Game
 
What’s new in SQL Server 2017
What’s new in SQL Server 2017What’s new in SQL Server 2017
What’s new in SQL Server 2017
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB MeetupMariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
 
SQL Server vNext on Linux
SQL Server vNext on LinuxSQL Server vNext on Linux
SQL Server vNext on Linux
 
SQL Server 2019 hotlap - WARDY IT Solutions
SQL Server 2019 hotlap - WARDY IT SolutionsSQL Server 2019 hotlap - WARDY IT Solutions
SQL Server 2019 hotlap - WARDY IT Solutions
 
What's new in SQL Server 2017
What's new in SQL Server 2017What's new in SQL Server 2017
What's new in SQL Server 2017
 
MySQL :What's New #GIDS16
MySQL :What's New #GIDS16MySQL :What's New #GIDS16
MySQL :What's New #GIDS16
 

More from Gianluca Hotz

Multitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL DatabaseMultitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL DatabaseGianluca Hotz
 
Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)Gianluca Hotz
 
SQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceSQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceGianluca Hotz
 
SQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query ProcessingSQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query ProcessingGianluca Hotz
 
IaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloudIaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloudGianluca Hotz
 
Data Integrity with SQL Database Ledger
Data Integrity with SQL Database LedgerData Integrity with SQL Database Ledger
Data Integrity with SQL Database LedgerGianluca Hotz
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database LedgerGianluca Hotz
 
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraCome utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraGianluca Hotz
 
Best Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWSBest Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWSGianluca Hotz
 
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Gianluca Hotz
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database LedgerGianluca Hotz
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query ProcessingGianluca Hotz
 
SQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksSQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksGianluca Hotz
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaGianluca Hotz
 
SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSGianluca Hotz
 
SQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseSQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseGianluca Hotz
 
SQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseSQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseGianluca Hotz
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query ProcessingGianluca Hotz
 

More from Gianluca Hotz (20)

Multitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL DatabaseMultitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL Database
 
Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)
 
SQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceSQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & Performance
 
SQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query ProcessingSQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query Processing
 
IaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloudIaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloud
 
Data Integrity with SQL Database Ledger
Data Integrity with SQL Database LedgerData Integrity with SQL Database Ledger
Data Integrity with SQL Database Ledger
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database Ledger
 
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraCome utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
 
Best Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWSBest Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWS
 
SQL Server in AWS
SQL Server in AWSSQL Server in AWS
SQL Server in AWS
 
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database Ledger
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query Processing
 
SQL Server in AWS
SQL Server in AWSSQL Server in AWS
SQL Server in AWS
 
SQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksSQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed Disks
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: Sicurezza
 
SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWS
 
SQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseSQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybase
 
SQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseSQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with Polybase
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query Processing
 

Recently uploaded

+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...Health
 
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Klinik kandungan
 
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...nirzagarg
 
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptxThe-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptxVivek487417
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...nirzagarg
 
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNKTimothy Spann
 
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制vexqp
 
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangePredicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangeThinkInnovation
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteedamy56318795
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Researchmichael115558
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1ranjankumarbehera14
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabiaahmedjiabur940
 
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格q6pzkpark
 
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制vexqp
 
7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.pptibrahimabdi22
 
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...Bertram Ludäscher
 
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
Capstone in Interprofessional Informatic // IMPACT OF COVID 19 ON EDUCATION
Capstone in Interprofessional Informatic  // IMPACT OF COVID 19 ON EDUCATIONCapstone in Interprofessional Informatic  // IMPACT OF COVID 19 ON EDUCATION
Capstone in Interprofessional Informatic // IMPACT OF COVID 19 ON EDUCATIONLakpaYanziSherpa
 
PLE-statistics document for primary schs
PLE-statistics document for primary schsPLE-statistics document for primary schs
PLE-statistics document for primary schscnajjemba
 

Recently uploaded (20)

+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
 
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
 
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
 
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptxThe-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
 
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
 
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制
 
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangePredicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
 
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
 
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制
怎样办理旧金山城市学院毕业证(CCSF毕业证书)成绩单学校原版复制
 
7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt
 
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
 
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
 
Capstone in Interprofessional Informatic // IMPACT OF COVID 19 ON EDUCATION
Capstone in Interprofessional Informatic  // IMPACT OF COVID 19 ON EDUCATIONCapstone in Interprofessional Informatic  // IMPACT OF COVID 19 ON EDUCATION
Capstone in Interprofessional Informatic // IMPACT OF COVID 19 ON EDUCATION
 
PLE-statistics document for primary schs
PLE-statistics document for primary schsPLE-statistics document for primary schs
PLE-statistics document for primary schs
 

SQL Server 2019 CTP2.4

  • 1. SQL Server 2019 CPT2.4 Gianluca Hotz ghotz@ugiss.org | @glhotz
  • 3. Who am I? • Gianluca Hotz | @glhotz | ghotz@ugiss.org • Independent Consultant, Founder and Mentor SolidQ • 20+ years on SQL Server (from 4.21 in 1996) • Database modeling and development, sizing and administration, upgrade and migration, performance tuning • Interests • Relational model, DBMS architecture, Security, High Availability and Disaster Recovery • Community • 20 years Microsoft MVP SQL Server (from 1998) • Founder and President UGISS • User Group Italiano SQL Server (PASS Chapter)
  • 5. Installation • Most new things in 2016/2017 • Separate downloads • IFI and tempdb configuration • Linux • R and Python integration • Integration Services Scale-out • Polybase
  • 7. SQL Server on Linux • Replication support • Snapshot, Transactional and Merge • Support for Microsoft Distributed Transaction Coordinator (MSDTC) • Always On Availability Group on Docker containers with Kubernetes • Kubernetes operator deploys StatefulSet including container with mssql- server container and health monitor • OpenLDAP support for third-party AD providers • Machine Learning Services (In-Database) on Linux • New container registry
  • 8. HA solution in Azure Kubernetes Service
  • 9. Polybase • Data Virtualization • External Data Source • External Tables • SQL Server 2016+ • Azure Blob Storage, Hadoop • SQL Server 2019 • SQL Server (all flavors), Oracle, Teradata, MongoDB, CosmosDB (Mongo API) • ODBC Generic Type (e.g. DB2, SAP Hana, Excel, …)
  • 10. External Tables vs Linked Servers External Tables Database Scoped ODBC Drivers Read-only* Scale out queries with push-down Failover with AG Basic authentication Distributed Transactions not supported Linked Servers Instance Scoped OLEDB Providers Read/write Single threaded queries with push-down Requires separate config from AG Basic and integrated authentication Distributed Transactions supported
  • 12. SQL Server 2019 Big Data Clusters (Preview) Compute pool SQL Compute Node SQL Compute Node SQL Compute Node … Compute pool SQL Compute Node IoT data Directly read from HDFS Persistent storage … Storage pool SQL Server Spark HDFS Data Node SQL Server Spark HDFS Data Node SQL Server Spark HDFS Data Node Kubernetes pod Analytics Custom apps BI SQL Server master instance Node Node Node Node Node Node Node SQL Data mart SQL Data Node SQL Data Node Compute pool SQL Compute Node Storage Storage
  • 13. Polybase in Big Data Cluster vs Stand-alone Feature Big data cluster Stand alone Create external data source for SQL Server, Oracle, Teradata, and Mongo DB X X Create external data source using a compatible third-party ODBC Driver X Create external data source for HADOOP data source X X Create external data source for Azure Blob Storage X X Create external table on a SQL Server data pool X Create external table on a SQL Server storage pool X Scale-out query execution X X
  • 14. Other Services • Master Data Services • Silverlight controls replaced with HTML • SQL Server Machine Learning Services • Windows Server Failover Cluster support • Partition-Based modeling
  • 16. Tools • SQL Server Management Studio V18 (Release Candidate 1) • Azure Data Studio (was Operations Studio)
  • 17. Resumable online index operations • Resume after failure (e.g. out of disk space) • Pause and resume later (e.g. free temporarily resources) • Manage large indexes using less log an shorter transactions • Fit rebuild operations into limited maintenance windows • REBUILD WITH (ONLINE = ON, RESUMABLE = ON, MAX_DURATION = 30 MINUTES); • SQL Server 2017+ Resumable Index Rebuild • SQL Server 2019+ Resumable Index Create
  • 18. Transparent Data Encryption • ALTER DATABASE … SET ENCRYPTION SUSPEND • ALTER DATABASE … SET ENCRYPTION RESUME
  • 19. Columnstore Indexes • Online build/rebuild Clustered Columnstore • E.g. conversion from row-store to Columnstore
  • 20. DBCC CLONEDATABASE • Instantaneous schema-only copy of a database for troubleshooting • No data, full-schema, statistics and Query Store • Non-blocking • Read-only by default (can be changed) • Optionally NO_STATISTICS, NO_QUERYSTORE • SQL Server 2012 SP4, 2014 SP2 CU3, 2016 SP1, 2017 • New in SQL Server 2019 • Columnstore Statistics
  • 21. Accelerated Database Recovery • Benefits • Fast and consistent database recovery • Number/size of active transactions don’t impact recovery time • Instantaneous transaction rollback • Active time and number of updates don’t impact rollback time • Aggressive Log Truncation • Even with long running transactions, prevents growing out of control • High level • Versioning all physical database modifications • Only logical operations undone (are limited and can be undone instantly) • Active transactions at crash time are marked as aborted • Any versions generated aborted transactions can be ignored user queries • Currently available in Preview in Azure SQL Database and CTP2.3+!
  • 22. Accelerated Database Recovery Components • Persisted Version Store (PVS) • New version store, stored in the database instead of tempdb • Enable also resource isolation • Logical Revert • Asynchronous process performing row level version based undo • Keeps track of all aborted transactions • Performs rollback using PVS • Releases all locks immediately after transaction abort • sLog • Secondary log stream storing log records for non versioned operations • Low volume and in-memory • Serialized on disk during CHECKPOINT • Enables aggressive transaction log truncation • Cleaner • Asynchronous process that cleans page versions
  • 25. Improved diagnostic data for stats blocking • Query Waiting for synchronous update operations • Now sys.dm_exec_requests shows SELECT (STATMAN) • New WAIT_ON_SYNC_STATISTICS_REFRESH wait stat
  • 26. Availability Groups Enhancements • More synchronous replicas • SQL Server 2012 4 replicas, 2 synchronous • SQL Server 2014 8 replicas, 2 synchronous • SQL Server 2017 8 replicas, 3 synchronous • SQL Server 2019 8 replicas, 5 synchronous • Secondary-to-primary read/write redirection • READ_WRITE_ROUTING_URL and ApplicationIntent=ReadWrite (default) • Killer feature to replace Listener • Cluster technology not offering listener-like features • Multi-subnet scenarios too complex to setup/maintain (e.g. Pacemaker) • Read scale-out or DR with cluster type NONE
  • 27. Storage Class Memory / PMEM • Allows low latency I/O • memory-mapped memcpy-like operations in user mode • SQL Server 2016 SP1 • NVDIMM-N for tail of the log caching • SQL Server 2019 • PMEM devices Linux • support for data, log In-Memory OLTP checkpoint files placement • Hybrid Buffer Pool • Clean pages direct referenced on PMEM devices without copy • Dirty pages still kept in DRAM
  • 28. Estimating Data Compression savings • sp_estimate_data_compression_savings • Returns specified object’s current size and estimates • SQL Server < 2019 • ROW and PAGE compression • SQL Server 2019+ • Adds COLUMNSTORE and COLUMNSTORE_ARCHIVE compression • Object type determines Columnstore type • E.g. Heap -> Clustered, Clustered index -> Clustered
  • 29. Query Profiling Infrastructure • Run-time information on query execution plans • E.g. live query statistics • Lightweight profiling • introduced in SQL Server 2014 SP2, 2016 SP1+ • 2% expected CPU overhead vs. 75% • SQL Server 2019+ • Enabled by default • XEvents query_post_execution_plan_profile (vs query_post_execution_showplan) • DMF sys.dm_exec_query_plan_stats() last known *actual* execution plan
  • 30. Internal database pages information • Undocumented DBCC PAGE • New in SQL Server 2019 • sys.dm_db_page_info(DatabaseId, FileId, PageId, Mode) • page_resource column in sys.dm_exec_requests and sys.sysprocesses • sys.fn_PageResCracker(page_resource) to get db_id, file_id, page_id
  • 31. Demo • Compression Savings • Internal Pages Information
  • 33. Truncation error messages • Error message 8152 too generic • String or binary data would be truncated • SQL Server 2019 introduces message 2628 • String or binary data would be truncated in table '%.*ls', column '%.*ls'. Truncated value: '%.*ls’ • Enabled with Trace Flag 460 • Opt-in required to avoid breaking parsing applications
  • 34. Extensibility Framework • Secure external script execution • Scale/optimization opportunities • SQL Server integration (e.g. store procedures, PREDICT) • Language Support • SQL Server 2016+ Support for R • SQL Server 2017+ Support for Python • SQL Server 2019+ Support for Java
  • 35. Extensibility Framework Components • Launchpad Service • One per SQL Server instance (with Machine Learning Services) • Provides security isolation • BxlServer • Manage communications between SQL Server and external processes • Binary Exchange Language data format • SQLSatellite • Extensibility API used by BxlServer • I/O data/arguments , error handling
  • 36. Java Language extension • Leverages Extensibility Framework • Through sp_execute_external_script • Current support • On Windows version 1.10 (JRE 10, JDK 10) • On Linux version 1.8 (JRE 8, JDK 8)
  • 37. UTF-8 Support • Full support for import/export, collations, replication, … • Still not for Linked Servers, In-Memory OLTP, External Table (Polybase) • CHAR and VARCHAR support (Windows collations only) • UTF8 in collation names • E.g. LATIN1_GENERAL_100_CI_AS_SC_UTF8 • Can provide storage savings • E.g. up to 50% from NCHAR(10) to CHAR(10) with UTF8 vs UTF16
  • 38. SQL Graph enhancements • Derived tables and view support in MATCH queries • Set of nodes/edges using UNION ALL • Useful for heterogeneous entities or connections between them • MATCH support in MERGE • Edge Constraints • CONNECTION constraint
  • 41. Certificate Management • Extended in SQL Server Configuration manager • View and validate certificates installed • View certificates close to expiration • Deploy Certificates across machine in Availability Groups • Deploy Certificates across machine in Failover Cluster Instances
  • 42. SQL Data Discovery and Classification • SQL Server management Studio Tool (V17.5) • Discovery & Recommendations, Labeling, Reporting • Metadata con be persisted and queried • Based on Extended Properties • sys_information_type_name, sys_sensitivity_label_name • Support for SQL Server 2008+ and Azure SQL Database
  • 43. SQL Server Sensitivity Classification • SQL Server 2019+ • (already available in Azure SQL Database) • T-SQL command ADD|DROP SENSITIVITY CLASSIFICATION • applies to tables, columns • LABEL, LAtBEL_ID, INFORMATION_TYPE, INFORMATION_TYPE_ID • Metadata stored in sys.sensitivity_classifications • SQL Server Audit add column data_sensitivity_information
  • 44. Data Discovery and Classification Demo
  • 45. Always Encrypted with Secure Enclaves • Basic architecture as SQL Server 2016+ implementation • Now allows server-side computation on encrypted columns • In-Place Encryption (ALTER TABLE for initial encryption) • Rich computations (e.g. range comparisons, LIKE predicates, …) • Inside secure enclaves • Virtualization-based Security (VBS) secure memory enclaves • also known as Virtual Secure Mode(VSM) enclaves • Operation on plaintexts cannot be disclosed outside enclave • Column Master Keys sent over secure channel by client driver • Still some limitations (no indexing) • Performance optimizations pending…
  • 46. Data Masking Dynamic Data Masking • On the original database • Original data intact • On-the-fly at query time • Based on user permissions Static Data Masking • On a copy of the database • Original data not retrievable • At storage level • Masked for everyone
  • 47. Static Data Masking • Component of SQL Server Management Studio V18 Preview5+ • Define per-column masking configuration • NULL, Single-Value, Shuffle, Group Shuffle, String Composite • Can save and load it • It’s basically a backup/restore and modify data according to config • No automation yet 
  • 48. Static Data Masking Limitations • No temporal and memory-optimzed tables • No computed and identity columns • No geometry and geography types • Azure SQL Database Hyperscale service tier not supported • Statistics not updated • No cleanup in case of error • can leave sensitive data copies (backupset) • Data and log files may contain sensitive data • retrievable with hex editor
  • 51. Intelligent Query Processing Intelligent QP Adaptive QP Adaptive Joins Batch Mode Interleaved Execution Memory Grant Feedback Row Mode Batch Mode Approximate QP Approximate Count Distinct Table Variable Deferred Compilation Batch Mode on Row Store Scalar UDF Inlining
  • 52. Execution Modes • Row Mode • Execution tree iterators consume 1 row at a time • Traditional execution mode for Rowstore • Batch Mode • Execution tree iterators consume a batch of rows at a time • Optimal with large scan operations (e.g. large table aggregates or joins) • SQL Server 2012 introduced to leverage Columnstore Indexes • SQL Server 2016/2017 extended usage scenarios for CI • SQL Server 2019 extended usage scenarios to Rowstore
  • 53. Batch Mode on RowStore • Help reducing CPU Consumption • Columnstore still a better choice • for OLAP workload that is I/O bound • can’t always create it (e.g. impact on OLTP, features not supported) • Limitations • In-Memory tables not supported (only heaps & disk-based b-trees) • Not used when fetching/filtering LOB columns • (including sparse columns sets & XML)
  • 54. Batch Mode on Rowstore Control • SQL Server < 2019 • Some scenarios covered with tricks… (article part1, part2, part3) • SQL Server 2019+ • Scenarios supported directly by Query Processor • On by default with database compatibility level 150+ • ALTER DATABASE SCOPED CONFIGURATION SET BATCH_MODE_ON_ROWSTORE = ON|OFF • OPTION (USE HINT ('ALLOW_BATCH_MODE’)); • OPTION (USE HINT (‘DISALLOW_BATCH_MODE'));
  • 55. Memory Grant • Excessive Grant • Too much memory allocated vs. memory used • Impact: blocking, out-of-memory, reduced concurrency • Poor Grant • Not enough memory allocated resulting in data spill to tempdb • Impact: slow query, excessive disk usage (tempdb) • Grant increase • dynamic grants increase allocation too much • impact: server instability, unpredictable performance
  • 56. Memory Grant Feedback • Post-execution evaluation • Updates grant value for cached plan • E.g. more memory if spilled, less if excessive grant • Version support • SQL Server 2017+ Batch Mode • SQL Server 2019+ Row Mode • Plan caching • Not persistent (i.e. not save in Query Store) • OPTION(RECOMPILE) prevents caching and memory grant feedback
  • 57. Memory Grant Feedback Control • Batch Mode • On by default with database compatibility level 140+ • ALTER DATABASE SCOPED CONFIGURATION SET BATCH_MODE_MEMORY_GRANT_FEEDBACK = ON|OFF • OPTION (USE HINT('DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK')); • Row Mode • On by default with database compatibility level 150+ • ALTER DATABASE SCOPED CONFIGURATION SET ROW_MODE_MEMORY_GRANT_FEEDBACK = ON|OFF • OPTION (USE HINT ('DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK'));
  • 58. Troubleshooting Memory Grant Feedback • Parameter sensitive scenarios • Some queries requires different plans with different grants • Memory grant feedback will disable itself when unstable • Extended Events to monitor changes • SQL Server 2017+ memory_grant_feedback_loop_disabled • SQL Server 2019+ memory_grant_updated_by_feedback • SQL Server 2019+ execution plan attributes • IsMemoryGrantFeedbackAdjusted • No: First Execution, Accurate Grant, Feedback disabled • Yes: Adjusting, Stable • LastRequestedMemory
  • 59. Batch mode adaptive joins • Scenario • Nested loop algorithm better for small build join inputs • Hash algorithm better for bigger inputs • Adaptive joins defer choice after first input scanned
  • 60. Interleaved Execution • Problem with multi-statement table valued functions (MSTVFs) • SQL Server <= 2012 optimize with cardinality = 1 • SQL Server 2014 & 2016 optimize with cardinality = 100 • SQL Server >= 2017 • Start optimization • Pause and executes MSTVFs if candidate • Resume optimization with correct cardinality
  • 61. Table Variable vs Temporary Tables Area Temporary Tables Table Variables Manual statistics creation and update Yes No Indexes Yes Only inline index definitions allowed Constraints Yes Only PRIMARY KEY, UNIQUE and CHECK Automatic statistics creation Yes No Creating and using a temporary object in a single batch Compilation of a statement that references a temporary table that doesn’t exist is deferred until the first execution of the statement A statement that references a table variable is compiled along with all other statements before any statement that populates the Table Variable is executed, so compilation sees it as 1
  • 62. Table Variable Deferred Compilation • Before SQL Server 2019 • Statement referencing TV compiled before population • Number of row estimate fixed at 1 • Starting with SQL Server 2019 • Behaves like Temporary Tables • Statement referencing non existing TV is deferred until first execution • Number of row estimate much better • Control • On by default with database compatibility level 150+ • ALTER DATABASE SCOPED CONFIGURATION SET DEFERRED_COMPILATION_TV = ON|OFF • OPTION (USE HINT ('DISABLE_DEFERRED_COMPILATION_TV'));
  • 63. Scalar UDF inlining • T-SQL user defined functions that returns a single data value • Performance problems • Iterative invocation • once per row, context switching especially with query execution • Lack of costing • before, only relational operators were costed, assumption to be cheap… • Interpreted execution • each statement executes in isolation, no cross-statement optimizations • Serial execution • Intra-query parallelism not allowed
  • 64. Scalar UDF Automatic inlining • In SQL Server 2019 Scalar UDF automatically transformed into • Scalar Expressions • Scalar Subqueries • Optimize the whole plan (UDFs no longer visible) • Control • On by default with database compatibility level 150+ • ALTER DATABASE SCOPED CONFIGURATION SET TSQL_SCALAR_UDF_INLINING = ON|OFF • OPTION (USE HINT ('DISABLE_TSQL_SCALAR_UDF_INLINING')); • CREATE FUNCTION … WITH INLINE = ON | OFF
  • 65. Scalar UDF inlining example Query without UDF Query with UDF (no inlining) Query with UDF (inlining) Execution time 1.6 seconds 29 minutes 11 seconds 1.6 seconds CREATE FUNCTION dbo.discount_price(@price DECIMAL(12,2), @discount DECIMAL(12,2)) RETURNS DECIMAL (12,2) AS BEGIN RETURN @price * (1 - @discount); END SELECT L_SHIPDATE, O_SHIPPRIORITY , SUM(dbo.discount_price(L_EXTENDEDPRICE, L_DISCOUNT)) FROM LINEITEM, ORDERS WHERE O_ORDERKEY = L_ORDERKEY GROUP BY L_SHIPDATE, O_SHIPPRIORITY ORDER BY L_SHIPDATE 10GB CCI compressed TPC-H Schema, 2 x CPUs (12 cores), 96GB RAM, SSD storage
  • 66. Scalar UDF inlining requirements • Written using the following constructs • DECLARE, SET (var declaration/assignments) • SELECT (single/multiple var assignments) • IF/ELSE (arbitrary nesting levels) • RETURN (single or multiple) • UDF nested/recursive function calls • Relational operations like EXISTS, ISNULL • No invocation of functions that are • time-dependent (GETDATE()) • has side effects (NEWSEQUENTIALID()) • Uses EXECUTE AS CALLER (default) • No table variables references • No table-valued parameters references • No user-defined types references • Not natively compiled • interop supported • Not a partition function • Not referenced in • GROUP BY clauses • computed columns • check constraints • No signatures added to it
  • 67. Scalar UDF inlining troubleshoting • Column is_inlineable in sys.sql_modules • Doesn’t imply it will always be inlined! (e.g. 1000s lines of code) • Execution Plan • If inlined successfully, xml node <UserDefinedFunction> will be missing • Extended Events • tsql_scalar_udf_not_inlineable
  • 68. APPROX_COUNT_DISTINCT • Returns approximate number of unique non-null values in groups • HyperLogLog algorithm guarantees up to 2% error rate within 97% probability • Fast data exploration with low memory footprint • E.g. dashboards, trend analysis, feature selection, etc. • Think 10 billion rows, 1 user using 1,5GB memory vs 100 users using 12MBs • Tradeoff: precision, only scenarios where exact values are not necessary!
  • 69. Demo • Scalar UDF inlining • APPROX_COUNT_DISTINCT
  • 70. Q&A