SQL Server 2016
Databases Engine Enhancements
Concepts
Min and Max Memory Grant Control
Query Store Columnstore
TempDB Enhancements
StetchDB Backup to Azure
Managed Backup
In-Memory OLTP
Query Store
Query Store Data
Query store collects
data asynchronously
Number of unique
plans kept for a query
is configurable
Runtime execution
statistics are kept over
a fixed time window
Getting Started with the Query Store
Query Store is disabled by
default
Configure size based on
database usage (default is
100 MB)
Failure mechanism is to go to
read-only mode
Finding Regressed Queries
Allows you to quickly identify
plans that have degraded
Great for upgrade testing,
patches or data changes
Gives you the option to force
plan if needed
Stretch Database
Historical data can be moved
into Azure SQL DB
This happens seamlessly and
transparently to your queries
Queries take place on the
remote SQL DB only your
results are brought back
Stretch Database Use Cases
Regulatory requirement to keep OLTP data for a long time
Occasional need to query the database
Users want historical data, but rarely query it
Legacy applications that don’t have archiving mechanisms
Storage is too expensive
Backup windows are impacted by legacy data
Stretch Database Architecture
Uses a Linked Server
connections
Linked Server uses remote
endpoint
Azure SQL DB has firewall port
open from on-premises server
All communications are
encrypted
Monitoring Stretch Database
Monitoring tools built into SSMS
New DMVs sys.dm_db_rda*
Monitor remote DB either through
Azure portal or local DMVs
Backup and Restore for Stretch Database
Stretch Database provides full
support for point in time restore
After you restore your SQL Server
database to a point in time and
reauthorize the connection to the
remote Azure SQL Database, Stretch
Database reconciles the remote data
to the same point in time
Columnstore Index Enhancements
Columnstore Index Enhancements
Still mainly aimed at analytical workloads
Much like In-Memory OLTP this feature • Major performance improvements
sees major enhancements • Major functionality improvements
• Availability improvements
Columnstore 2016
Batch mode support for single threaded queries
Snapshot isolation and read-committed snapshot isolation support
AlwaysOn Availability Group support
Updatable secondary b-tree indexes on clustered columnstore
Columnstore index on a memory-optimized tables
Multiple Active Result Sets (MARS) support
Nonclustered columnstore indexes are updatable
Filtered nonclustered columnstore indexes are available
Batch Mode Enhancements
SORT operations now in batch mode
Most windowing functions support batch mode
Predicate pushdown on string comparisons
Nearly all statistical functions in T-SQL
TempDB Enhancements
SQL Server
Trace Flag
chooses the
1117 and
right number
1118 are
of files based
enabled by
on your CPU
default
configuration
Managed Backup to Azure
Backups Custom
automatically scheduling
managed by now
SQL Server supported
Databases
All recovery backups up
modes are to 12 TB are
supported now
supported
SQL Server Backup to URL
Backing up to multiple blobs is now
supported
Shared Access Signature (SAS) tokens
are required for this functionality
Backups up to 12 TB are supported
Replication
Support for
replication to
Azure SQL DB
Replication for
in-memory
tables
Optimizer
Trace Flag 4199 Behaviors are enabled unconditionally
New query hints—MIN_GRANT_PERCENT and
MAX_GRANT_PERCENT
More information in sys.dm_exec_query_stats about
memory grants
Database Scoped Configurations
• Clear Procedure Cache
•Database • Set MAXDOP at Database Level
Level Object • Change the Query Optimizer cardinality
estimation model
to Hold • Disable or Enable Parameter Sniffing
Configurations • Disable or Enable query optimization
hotfixes