SQL Server 2016 CTP3
New innovations
Operational
analytics:
in-memory tables
Support for index maintenance
Operation SQL Server 2014 SQL Server 2016
Removing deleted rows Requires index REBUILD Index REORGANIZE
Remove deleted rows from single compressed RG
Merge one or more compressed RGs with deleted rows
Done ONLINE
Smaller RG size resulting from:
Smaller BATCHSIZE
Memory pressure
Index build residual
Index REBUILD Index REORGANIZE
Ordering rows Create clustered index
Create columnstore index by dropping clustered index
No changes
Query Row group granularity
No support for RCSI or SI
Recommendation: use read uncommitted
Support of SI and RCSI (non-blocking)
Insert Lock at row level (trickle insert)
Row group level for set of rows
No changes
Delete Lock at row group level Row-level lock in conjunction with NCI
Update Lock at row group level
Implemented as Delete/Insert
Row-level lock in conjunction with NCI
AlwaysOn Failover Clustering (FCI) Fully supported Fully supported
AlwaysON Availability Groups Fully supported except readable secondary Fully supported with readable secondary
Index create/rebuild Offline Offline
Performance
Summary: operational analytics
Capability
Ability to run analytics queries concurrently with
operational workloads using the same schema
Data Warehouse queries can be run on In-Memory
OLTP workloads with no application changes
Benefits
Minimal impact on OLTP workloads
Best performance and scalability available
Offloading analytics workload to readable
secondary
.
IIS Server
BI analysts
Performance
In-Memory OLTP
enhancements
| ADD
{
<column_definition>
| <table_constraint>
| <table_index>
} [ ,...n ]
| DROP
{
[ CONSTRAINT ]
{
constraint_name
} [ ,...n ]
| COLUMN
{
column_name
} [ ,...n ]
| INDEX
{
index_name
} [ ,...n ]
} [ ,...n ]
| ALTER INDEX index_name
{
REBUILD (WITH <rebuild_index_option>)
}
}
The ALTER TABLE syntax is
used for making changes to the
table schema, as well as for
adding, deleting, and rebuilding
indexes
Indexes are considered part of
the table definition
Key advantage is the ability to
change the BUCKET_COUNT with
an ALTER INDEX statement
Altering memory-optimized tables
Performance
CREATE PROCEDURE [dbo].[usp_1]
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS BEGIN ATOMIC WITH
(
TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE =
N'us_english'
)
SELECT c1, c2 from dbo.T1
END
GO
ALTER PROCEDURE [dbo].[usp_1]
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS BEGIN ATOMIC WITH
(
TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE =
N'us_english'
)
SELECT c1 from dbo.T1
END
GO
You can now perform ALTER
operations on natively compiled
stored procedures using the
ALTER PROCEDURE statement
Use sp_recompile to
recompile stored procedures on
the next execution
Altering natively compiled stored procedures
Performance
New Transaction Performance Analysis Overview report
New report replaces the
need to use the
Management Data
Warehouse to analyze
which tables and stored
procedures are candidates
for in-memory
optimization
Performance
In SQL Server 2016, the
storage for memory-
optimized tables will be
encrypted as part of enabling
TDE on the database
Simply follow the same steps
as you would for a disk-based
database
Support for Transparent Data Encryption (TDE)
Windows Operating System
Level Data Protection
SQL Server
Instance Level
User Database
Level Database Encryption Key
Service Master Key
DPAPI encrypts the Service Master Key
Master
Database Level Database Encryption Key
Service Master Key Encrypts the Database
master Key for the master Database
Database Master Key of the master Database
creates a certificate in the master database
The certificate encrypts the database
Encryption Key in the user database
The entire user database is secured by the
Datbase Encryption Key (DEK) of the user
database by using transparent database
encryption
Created at a time of SQL Server setup
Statement:
CREAT MASTER KEY…
Statement:
CREATE CERTIFICATE…
Statement:
CREATE DATABASE ENCRYPTION KEY…
Statement:
ALTER DATABSE… SET ENCRYPTION
Performance
Summary: In-Memory OLTP enhancements
Capability
ALTER support for memory-optimized tables
Greater Transact-SQL coverage
Benefits
Improved scaling: In-Memory OLTP engine has been enhanced to scale linearly on servers up to 4 sockets
Tooling improvements in Management Studio
MARS (multiple active result sets) support
TDE (Transparent Data Encryption)-enabled: all on-disk data files are now encrypted once TDE is enabled
Performance
Query Store
Your flight data recorder
for your database
Problems with query performance
Fixing query plan choice regressions is difficult
• Query plan cache is not well-suited for performance troubleshooting
Long time to detect the issue (TTD)
• Which query is slow? Why is it slow?
• What was the previous plan?
Long time to mitigate (TTM)
• Can I modify the query?
• How to use plan guide?
Performance
Temporary
perf issues
Website
Is down
DB
upgraded
Database
is not
working
Impossible
to predict /
root cause
Regression
caused by
new bits
Durability latency controlled by DB option
DATA_FLUSH_INTERNAL_SECONDS
Compile
Execute
Plan store
Runtime
stats
Query
Store
schema
Query data store
Collects query texts (plus all relevant properties)
Stores all plan choices and performance metrics
Works across restarts / upgrades / recompiles
Dramatically lowers the bar for performance
troubleshooting
New Views
Intuitive and easy plan forcing
Performance
The Query Store
feature provides DBAs
with insight on query
plan choice and
performance
Monitoring performance by using the Query Store
Performance
Summary: Query Store
Capability
Query Store helps customers quickly find and fix query performance issues
Query Store is a ‘flight data recorder’ for database workloads
Benefits
Greatly simplifies query performance troubleshooting
Provides performance stability across SQL Server upgrades
Allows deeper insight into workload performance
Performance
JavaScript Object
Notation (JSON)
JSON in SQL Server
[
{
"Number":"SO43659",
"Date":"2011-05-31T00:00:00"
"AccountNumber":"AW29825",
"Price":59.99,
"Quantity":1
},
{
"Number":"SO43661",
"Date":"2011-06-01T00:00:00“
"AccountNumber":"AW73565“,
"Price":24.99,
"Quantity":3
}
]
SO43659 2011-05-31T00:00:00 MSFT 59.99 1
SO43661 2011-06-01T00:00:00 Nokia 24.99 3
Table 2 JSON
Formats result set
as JSON text.
JSON 2 table
Migrates JSON
text to table
Built-in functions
ISJSON
JSON_VALUE
JSON_MODIFY
Performance
Main facts
No custom type or index
Store as NVARCHAR
Does JSON work with X?
Does NVARCHAR work with X?
Yes, with in-memory, row-level security, stretch, compression, encryption, and more
Yes, with all client drivers
Different from DocumentDB
Table to JSON
JSON output:
SO43659 2011-05-31T00:00:00 MSFT 59.99 1
SO43661 2011-06-01T00:00:00 Nokia 24.99 3
SELECT Number AS [Order.Number], Date AS [Order.Date],
Customer AS Account,
Price AS 'Item.UnitPrice', Quantity AS 'Item.Qty'
FROM SalesOrder
FOR JSON PATH
Performance
CREATE TABLE SalesOrderRecord (
Id int PRIMARY KEY IDENTITY,
OrderNumber NVARCHAR(25) NOT NULL,
OrderDate DATETIME NOT NULL,
JSalesOrderDetails NVARCHAR(4000)
CONSTRAINT SalesOrderDetails_IS_JSON
CHECK ( ISJSON(JSalesOrderDetails)>0 ),
Quantity AS
CAST(JSON_VALUE(JSalesOrderDetails, '$.Order.Qty') AS int)
)
GO
CREATE INDEX idxJson
ON SalesOrderRecord(Quantity)
INCLUDE (Price);
Built-in functions
JSON is plain text
ISJSON guarantees
consistency
Optimize further with
computed column and
INDEX
Summary: JSON
Capability
Greatly enhances developer productivity
Benefits
Added native JSON support in the core database engine supports schema-free data. Tackle more diverse
data types right in SQL Server
Support in DocumentDB
Performance
Temporal
Query back in time
No change in programming model New Insights
INSERT / BULK INSERT
UPDATE
DELETE
MERGE
DML SELECT * FROM temporal
Querying
How to start with temporal
CREATE temporal
TABLE PERIOD FOR
SYSTEM_TIME…
ALTER regular_table
TABLE ADD
PERIOD…
DDL
FOR SYSTEM_TIME
AS OF
FROM..TO
BETWEEN..AND
CONTAINED IN
Temporal
Querying
ANSI 2011
compliant
Performance
Provides correct information
about stored facts at any
point in time, or between
two points in time
There are two orthogonal sets of scenarios with
regards to temporal data:
System (transaction)-time
Application-time
SELECT * FROM
Person.BusinessEntityContact
FOR SYSTEM_TIME BETWEEN @Start AND @End
WHERE ContactTypeID = 17
Performance
Temporal database support: BETWEEN
Summary: temporal
Capability
Greatly enhances developer productivity
Benefits
Added temporal database support so you can record, audit, and query data changes over time
Performance Security Availability Scalability
Operational analytics
Insights on operational data;
Works with in-memory OLTP and
disk-based OLTP
In-memory OLTP
enhancements
Greater T-SQL surface area,
terabytes of memory supported,
and greater number of parallel
CPUs
Query data store
Monitor and optimize query plans
Native JSON
Expanded support for JSON data
Temporal database
support
Query data as points in time
Always encrypted
Sensitive data remains encrypted
at all times with ability to query
Row-level security
Apply fine-grained access control
to table rows
Dynamic data masking
Real-time obfuscation of data to
prevent unauthorized access
Other enhancements
Audit success/failure of database
operations
TDE support for storage of In-
Memory OLTP tables
Enhanced auditing for OLTP with
ability to track history of record
changes
Enhanced AlwaysOn
Three synchronous replicas for
auto failover across domains
Round robin load balancing of
replicas
Automatic failover based on
database health
DTC for transactional integrity
across database instances with
AlwaysOn
Support for SSIS with AlwaysOn
Enhanced database
caching
Cache data with automatic,
multiple TempDB files per instance
in multi-core environments
Mission-critical performance
Always Encrypted
Prevents data
disclosure
Client-side encryption of
sensitive data using keys that
are never given to the
database system
Queries on
encrypted data
Support for equality
comparison, including join,
group by, and distinct
operators
Application
transparency
Minimal application changes
via server and client library
enhancements
Allows customers to securely store sensitive data outside of their trust boundary.
Data remains protected from high-privileged, yet unauthorized users.
The need for Always Encrypted
Security
How it works
Help protect data at rest and in motion, on-premises and in the cloud
SQL Server or SQL Database
ADO .NET
Name
Wayne Jefferson
Name
0x19ca706fbd9a
Result SetResult Set
Client
Name SSN Country
0x19ca706fbd9a 0x7ff654ae6d USA
dbo.Customers
ciphertext
"SELECT Name FROM Customers WHERE SSN = @SSN",
0x7ff654ae6d
ciphertext
"SELECT Name FROM Customers WHERE SSN = @SSN",
"111-22-3333"
Encrypted sensitive data and corresponding keys
are never seen in plaintext in SQL Server
trust boundary
Security
Select columns to
be encrypted
Analyze schema
and application
queries to detect
conflicts (build
time)Set up the keys:
master & CEK
Static schema
analysis tool
(SSDT only)
UI for selecting columns (no
automated data classification)
Key setup tool to automate
selecting CMK, generating and
encrypting CEK, and uploading
key metadata to the database
Setup (SSMS or SSDT)
User experience: SSMS or SSDT (Visual Studio)
Security
Data remains encrypted
during query
Summary: Always Encrypted
Protect data at rest and in motion, on-premises and in the cloud
Capability
ADO.Net client library provides
transparent client-side encryption, while
SQL Server executes T-SQL queries on
encrypted data
Benefits
Apps TCE-enabled
ADO .NET library
SQL ServerEncrypted
query
Columnar
key
No app
changes
Master
key
Security
Row-level security
SQL Server 2016
SQL Database
Fine-grained access control over specific rows in a database
table
Help prevent unauthorized access when multiple users
share the same tables, or to implement connection filtering
in multitenant applications
Administer via SQL Server Management Studio or SQL
Server Data Tools
Enforcement logic inside the database and schema is
bound to the table
Protect data privacy by ensuring
the right access across rows
SQL Database
Customer 1
Customer 2
Customer 3
The need for row-level security
Security
Fine-grained
access control
Keeping multitenant
databases secure by limiting
access by other users who
share the same tables
Application
transparency
RLS works transparently at
query time, no app changes
needed
Compatible with RLS in other
leading products
Centralized
security logic
Enforcement logic resides
inside database and is
schema-bound to the table it
protects providing greater
security. Reduced application
maintenance and complexity
Store data intended for many consumers in a single database/table while at the same time
restricting row-level read and write access based on users’ execution context.
Benefits of row-level security (RLS)
Security
Security
CREATE FUNCTION dbo.fn_securitypredicate(@wing int)
RETURNS TABLE WITH SCHEMABINDING AS
return SELECT 1 as [fn_securitypredicate_result]
FROM
StaffDuties d INNER JOIN Employees e
ON (d.EmpId = e.EmpId)
WHERE e.UserSID = SUSER_SID()
AND @wing = d.Wing;
CREATE SECURITY POLICY dbo.SecPol
ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing)
ON Patients
WITH (STATE = ON)
Fine-grained access control over
rows in a table based on one or
more pre-defined filtering
criteria, such as user’s role or
clearance level in organization
Concepts:
Predicate function
Security policy
Example
Two
App user (e.g., nurse) selects from Patients table
Three
Security Policy transparently rewrites query to apply filter predicate
Database Policy Manager
CREATE FUNCTION dbo.fn_securitypredicate(@wing int)
RETURNS TABLE WITH SCHEMABINDING AS
return SELECT 1 as [fn_securitypredicate_result] FROM
StaffDuties d INNER JOIN Employees e
ON (d.EmpId = e.EmpId)
WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing;
CREATE SECURITY POLICY dbo.SecPol
ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON Patients
WITH (STATE = ON)
Filter
Predicate:
INNER
JOIN…
Security
Policy
Application
Patients
Nurse
SELECT * FROM Patients
SELECT * FROM Patients
SEMIJOIN APPLY dbo.fn_securitypredicate(patients.Wing);
SELECT Patients.* FROM Patients,
StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId)
WHERE e.UserSID = SUSER_SID() AND Patients.wing = d.Wing;
RLS in three steps
Security
Summary: RLS
Capability
Row-level security provides fine-grained access control over rows in a table based on
conditions you set up
Benefits
Store data for many users in the same databases and tables while limiting access by other users
who share the same tables
Security
Dynamic data masking
SQL Server 2016
SQL Database
Configuration made easy in the new Azure portal
Policy-driven at the table and column level, for a
defined set of users
Data masking applied in real-time to query
results based on policy
Multiple masking functions available (e.g. full,
partial) for various sensitive data categories
(credit card numbers, SSN, etc.)
SQL Database
SQL Server 2016
Table.CreditCardNo
4465-6571-7868-5796
4468-7746-3848-1978
4484-5434-6858-6550
Real-time data masking;
partial masking
Dynamic data masking
Prevent the abuse of sensitive
data by hiding it from users
Security
Regulatory
compliance
Sensitive data
protection
Agility and
transparency
Data is masked on the fly, with
underlying data in the database
remaining intact. Transparent to
the application and applied
according to user privilege
Limit access to sensitive data by defining policies to obfuscate specific database fields, without
affecting the integrity of the database.
Benefits of dynamic data masking
Security
How it works
On-the-fly obfuscation of data in query results
Policy-driven on the table and column
Multiple masking functions available for various sensitive data categories
Flexibility to define a set of privileged logins for un-masked data access
By default, database owner is unmasked
See: https://msdn.microsoft.com/en-us/library/mt130841.aspx
Azure DB
Table.CreditCardNo
4465-6571-7868-5796
4468-7746-3848-1978
4484-5434-6858-6550
On-the-fly masking of
sensitive data in query results
Dynamic
masking
Limit sensitive data exposure by
obfuscating it to non-privileged users
Security
Dynamic data masking walkthrough
ALTER TABLE [Employee] ALTER COLUMN [SocialSecurityNumber]
ADD MASKED WITH (FUNCTION = ‘SSN()’)
ALTER TABLE [Employee] ALTER COLUMN [Email]
ADD MASKED WITH (FUNCTION = ‘EMAIL()’)
ALTER TABLE [Employee] ALTER COLUMN [Salary]
ADD MASKED WITH (FUNCTION = ‘RANDOM(1,20000)’)
GRANT UNMASK to admin1
1) Security officer defines dynamic data masking policy in T-SQL over sensitive data in Employee table2) Application user selects from Employee table3) Dynamic data masking policy obfuscates the sensitive data in the query results
SELECT [Name],
[SocialSecurityNumber],
[Email],
[Salary]
FROM [Employee]
Security
Summary: dynamic data masking
Capability
Protects against unauthorized disclosure of sensitive data in the application
Benefits
Enables you to set up policies at the table and column level that provide multiple masking functions
Allows certain privileged logins to see the data unmasked
Security
Enhanced
AlwaysOn
More than two automatic failover targets
Increased solution scale
Increased resiliency
Now any sync secondary can be a target for automatic failover
Total of three automatic failover targets
Availability
Log transport performance
New hardware pushes boundaries
Very high transaction rates have caused problems when coupled with
fast hardware (i.e. PCIe flash storage)
The entire pipeline has been reworked end to end
Result is much lower CPU consumption, and much better performance
Performance bar: comparison to the performance of a standalone server
Availability
Distributed Transaction Coordinator (DTC) support
Currently, any distributed transactions touching a database in an
availability group are not allowed
Many customers run unsupported, at risk to their data and reputation
Many enterprise applications need cross-database transactions
Fully supported in SQL Server 2016
Joint effort with Windows
Requires specific patch in order to work cleanly
Other requirements:
• Availability groups must be running on Windows Server 2016 Technical Preview 2
• Availability groups must be created with the CREATE AVAILABILITY GROUP command and the WITH
DTC_SUPPORT = PER_DB clause. You cannot currently alter an existing availability group
• Learn more: https://msdn.microsoft.com/en-us/library/ms366279.aspx
Availability
Database-level failover trigger
Currently, Availability Groups only monitor the health of the instance
A database can be offline or corrupt, but will not trigger a failover as long as the instance itself is
healthy
SQL Server 2016: option to also monitor the health of the databases in the
Availability Group
Databases going offline trigger a change in the health status
Availability
Summary: enhanced AlwaysOn
Capability
For scalability, SQL Server 2016 adds in load balancing of readable secondaries
Increases the number of auto-failover targets from two to three
Benefits
Log transport performance has been improved
Support for Distributed Transaction Coordinator (DTC) — enrolled transactions for Availability Group
databases
Database-level health monitoring
gMSA: domain-level accounts that are automatically managed
Availability
Performance Security Availability Scalability
Operational analytics
Insights on operational data;
Works with in-memory OLTP and
disk-based OLTP
In-memory OLTP
enhancements
Greater T-SQL surface area,
terabytes of memory supported,
and greater number of parallel
CPUs
Query data store
Monitor and optimize query plans
Native JSON
Expanded support for JSON data
Temporal database
support
query data as points in time
Always encrypted
Sensitive data remains encrypted
at all times with ability to query
Row-level security
Apply fine-grained access control
to table rows
Dynamic Data Masking
Real-time obfuscation of data to
prevent unauthorized access
Other enhancements
Audit success/failure of database
operations
TDE support for storage of in-
memory OLTP tables
Enhanced auditing for OLTP with
ability to track history of record
changes
Enhanced AlwaysOn
Three synchronous replicas for
auto failover across domains
Round robin load balancing of
replicas
Automatic failover based on
database health
DTC for transactional integrity
across database instances with
AlwaysOn
Support for SSIS with AlwaysOn
Enhanced database
caching
Cache data with automatic,
multiple TempDB files per instance
in multicore environments
Mission-critical performance
Scalability
improvements
Access any data Scale and manage Powerful insights Advanced analytics
PolyBase
Insights from data across SQL
Server and Hadoop with the
simplicity of T-SQL
Enhanced SSIS
Designer support for previous SSIS
versions
Enterprise-grade
Analysis Services
Enhanced performance and
scalability for Analysis Services
Single SSDT in Visual Studio
2015 (CTP3)
Build richer analytics solutions as
part of your development projects
in Visual Studio
Enhanced MDS
Excel add-in 15x faster; more
granular security roles; archival
options for transaction logs; and
reuse entities across models
Mobile BI
Business insights for your on-
premises data through rich
visualization on mobile devices
with native apps for Windows, iOS,
and Android
Enhanced Reporting
Services
New modern reports with rich
visualizations
R integration (CTP3)
Bringing predictive analytic
capabilities to your relational
database
Expand your “R” script library with
Microsoft Azure Marketplace
Deeper insights across data
PolyBase for
SQL Server 2016
PolyBase and queries
Provides a scalable, T-SQL-compatible query processing
framework for combining data from both universes
Access any data
PolyBase View in SQL Server 2016
PolyBase View
• Execute T-SQL queries against
relational data in SQL Server and
‘semi-structured’ data in HDFS
and/or Azure
• Leverage existing T-SQL skills and
BI tools to gain insights from
different data stores
• Expand the reach of SQL Server to
Hadoop(HDFS)
Access any data
SSIS
improvements
SSIS improvements for SQL Server 2016
AlwaysOn support
Incremental deployment of
packages
Improved project upgrade support
CTP3 enhancements
Error column name support
Custom log level
Package template
OData V4 support
Designer improvements
One designer multi-version support
AlwaysOn
Availability Groups
Secondary for
SSISDB
New York
(Primary)
New Jersey
(Secondary)
SSIS
DB
SSIS
DB
SQL Server 2012
SSIS Project X
SQL Server 2016
SSIS Project X
Improved project
upgrade
Access any data
Package template (CTP3)
Reuse code as templates
Developer can save part of the package as a
template and reuse it in the design of other
packages
Access any data
Capability
DBA can set up AlwaysOn Availability Groups for the SSIS catalog
Deploy one or more packages to an existing or new project without deploying the whole project
Benefits
Customize your own log levels for more flexibility
See the error column name in both the data viewer and editor
Create reusable code by making a package template
OData Source support for V4 Protocol
Summary: SSIS improvement
Access any data
Enterprise-grade
Analysis Services
Analysis Services themes for SQL Server 2016
Improved productivity and performance
Increased
productivity
Scale and manage
Scale your tabular
models with support
for high-end servers
More memory
More cores
Summary: enterprise-grade Analysis Services
Deliver high performance and scalability for your BI solutions
High-end server hardware
Capability
Tabular and MOLAP modeling enhancements
High-performance Direct Query for Tabular
Additional tools for administrators
Performance and data source updates
Benefits
Scale and manage
Unified Visual
Studio Data Tools
(CTP3)
Capability
SSDT-BI and SSMS for Visual Studio 2015
Rich data modeling enhancements
New DAX analytical functions
MDX Query Plan tool for performance optimizations and troubleshooting
Benefits{JSON}
Rich BI application platform
Develop and deliver BI solutions faster and at lower costs
Scale and manage
Master Data
Services
improvements
Areas of improvement
Scale and manage
Performance and scale
Overall performance and scale
improvements
Target of 15x performance
improvement for Excel add-in
Increased performance for bulk
entity-based staging operations
Security improvements
New security roles for more
granular permissions around read,
write, and delete
Multiple system administrators
Manageability and modeling
Archive transaction logs
Reuse of entities across models
Support for compound keys
Name and Code attributes can be
renamed
Summary: MDS improvements
Scale and manage
Enhanced
Reporting
Services
Modern Report Builder look and feel
Visual Studio 2015 support
Modern reports
Powerful insights
Consume anywhere, anytime
Find, view, and manage through modern web
portal
Support for modern HTML5 browsers
Printing without plug-ins
PowerPoint rendering and export
Powerful insights
Summary: Enhanced Reporting Services
Modern design tools
Support for latest enterprise data source
Expanded browser support
Secure access
Power BI integration
 Report consumption from modern browsers
 Improved parameters
 Modern themes
 New chart types
Powerful insights
R integration
R Integration in SQL Server will be Revolutionary
Capability
Extensible in-database analytics, integrated with
R, exposed through T-SQL
Centralize enterprise library for analytic models
Benefits
SQL Server
Analytical engines
Full R integration
Fully extensible
Data Management Layer
Relational data
T-SQL interface
Stream data in-memory
Analytics library
Share and collaborate
Manage and deploy
R +
Data Scientists
Business
Analysts
Publish algorithms, interact
directly with data
Analysis through TSQL, tools,
and vetted algorithms
DBAs
Manage storage and
analytics together
Summary: R integration and advanced analytics
Advanced analytics
Stretch Database
Ever-growing data, ever-shrinking IT
What to do?
Expand server and storage
Move data elsewhere
Delete
Massive tables (hundreds of
millions/billions of rows, TBs size)
Users want/need to retain data
indefinitely
Cold data infrequently accessed but
must be online
Datacenter consolidation
Maintenance challenges
Business SLAs at risk
Hybrid solutions
Capability
Stretch large operational tables
from on-premises to Azure with
the ability to query
Benefits
Stretch SQL Server into Azure
Securely stretch cold tables to Azure with remote query processing
SQL
SERVER
2016
Azure
Hybrid solutions
Stretch Database architecture
How it works
Creates a secure linked server
definition in the on-premises SQL
Server
Linked server definition has the
remote endpoint as the target
Provisions remote resources and
begins to migrate eligible data, if
migration is enabled
Queries against tables run against
both the local database and the
remote endpoint
Remote
endpoint
Remote
data
Azure
InternetBoundary
Local
database
Local
data
Eligible
data
Linked Servers
Hybrid solutions
Queries continue working
• Business applications continue working
without disruption
• DBA scripts and tools work as before.
All controls still held in local SQL Server
• Developers continue building or
enhancing applications with existing
tools and methods
Hybrid solutions
Order history
Name SSN Date
Jane Doe cm61ba906fd 2/28/2005
Jim Gray ox7ff654ae6d 3/18/2005
John Smith i2y36cg776rg 4/10/2005
Bill Brown nx290pldo90l 4/27/2005
Sue Daniels ypo85ba616rj 5/12/2005
Sarah Jones bns51ra806fd 5/22/2005
Jake Marks mci12hh906fj 6/07/2005
Eric Mears utb76b916gi 6/18/2014
Rachel Hogan px61hi9306fj 7/1/2014
Sam Johnson ol43bi506gd 7/12/2014
David Simon tx83hal916fi 7/29/2014
Order history
Name SSN Date
Jane Doe cm61ba906fd 2/28/2005
Jim Gray ox7ff654ae6d 3/18/2005
John Smith i2y36cg776rg 4/10/2005
Bill Brown nx290pldo90l 4/27/2005
Customer data
Product data
Order History
Stretch to cloud
App
Query
Microsoft Azure

Jim Gray ox7ff654ae6d 3/18/2005
Hybrid solutions
What is IoT?
Internet of Things (IoT)
Azure Data Lake and Data Factory
Get started with U-SQL
Questions

SQL Server 2016 novelties

  • 1.
    SQL Server 2016CTP3 New innovations
  • 2.
  • 3.
    Support for indexmaintenance Operation SQL Server 2014 SQL Server 2016 Removing deleted rows Requires index REBUILD Index REORGANIZE Remove deleted rows from single compressed RG Merge one or more compressed RGs with deleted rows Done ONLINE Smaller RG size resulting from: Smaller BATCHSIZE Memory pressure Index build residual Index REBUILD Index REORGANIZE Ordering rows Create clustered index Create columnstore index by dropping clustered index No changes Query Row group granularity No support for RCSI or SI Recommendation: use read uncommitted Support of SI and RCSI (non-blocking) Insert Lock at row level (trickle insert) Row group level for set of rows No changes Delete Lock at row group level Row-level lock in conjunction with NCI Update Lock at row group level Implemented as Delete/Insert Row-level lock in conjunction with NCI AlwaysOn Failover Clustering (FCI) Fully supported Fully supported AlwaysON Availability Groups Fully supported except readable secondary Fully supported with readable secondary Index create/rebuild Offline Offline Performance
  • 4.
    Summary: operational analytics Capability Abilityto run analytics queries concurrently with operational workloads using the same schema Data Warehouse queries can be run on In-Memory OLTP workloads with no application changes Benefits Minimal impact on OLTP workloads Best performance and scalability available Offloading analytics workload to readable secondary . IIS Server BI analysts Performance
  • 5.
  • 6.
    | ADD { <column_definition> | <table_constraint> |<table_index> } [ ,...n ] | DROP { [ CONSTRAINT ] { constraint_name } [ ,...n ] | COLUMN { column_name } [ ,...n ] | INDEX { index_name } [ ,...n ] } [ ,...n ] | ALTER INDEX index_name { REBUILD (WITH <rebuild_index_option>) } } The ALTER TABLE syntax is used for making changes to the table schema, as well as for adding, deleting, and rebuilding indexes Indexes are considered part of the table definition Key advantage is the ability to change the BUCKET_COUNT with an ALTER INDEX statement Altering memory-optimized tables Performance
  • 7.
    CREATE PROCEDURE [dbo].[usp_1] WITHNATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER AS BEGIN ATOMIC WITH ( TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english' ) SELECT c1, c2 from dbo.T1 END GO ALTER PROCEDURE [dbo].[usp_1] WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER AS BEGIN ATOMIC WITH ( TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english' ) SELECT c1 from dbo.T1 END GO You can now perform ALTER operations on natively compiled stored procedures using the ALTER PROCEDURE statement Use sp_recompile to recompile stored procedures on the next execution Altering natively compiled stored procedures Performance
  • 8.
    New Transaction PerformanceAnalysis Overview report New report replaces the need to use the Management Data Warehouse to analyze which tables and stored procedures are candidates for in-memory optimization Performance
  • 9.
    In SQL Server2016, the storage for memory- optimized tables will be encrypted as part of enabling TDE on the database Simply follow the same steps as you would for a disk-based database Support for Transparent Data Encryption (TDE) Windows Operating System Level Data Protection SQL Server Instance Level User Database Level Database Encryption Key Service Master Key DPAPI encrypts the Service Master Key Master Database Level Database Encryption Key Service Master Key Encrypts the Database master Key for the master Database Database Master Key of the master Database creates a certificate in the master database The certificate encrypts the database Encryption Key in the user database The entire user database is secured by the Datbase Encryption Key (DEK) of the user database by using transparent database encryption Created at a time of SQL Server setup Statement: CREAT MASTER KEY… Statement: CREATE CERTIFICATE… Statement: CREATE DATABASE ENCRYPTION KEY… Statement: ALTER DATABSE… SET ENCRYPTION Performance
  • 10.
    Summary: In-Memory OLTPenhancements Capability ALTER support for memory-optimized tables Greater Transact-SQL coverage Benefits Improved scaling: In-Memory OLTP engine has been enhanced to scale linearly on servers up to 4 sockets Tooling improvements in Management Studio MARS (multiple active result sets) support TDE (Transparent Data Encryption)-enabled: all on-disk data files are now encrypted once TDE is enabled Performance
  • 11.
    Query Store Your flightdata recorder for your database
  • 12.
    Problems with queryperformance Fixing query plan choice regressions is difficult • Query plan cache is not well-suited for performance troubleshooting Long time to detect the issue (TTD) • Which query is slow? Why is it slow? • What was the previous plan? Long time to mitigate (TTM) • Can I modify the query? • How to use plan guide? Performance Temporary perf issues Website Is down DB upgraded Database is not working Impossible to predict / root cause Regression caused by new bits
  • 13.
    Durability latency controlledby DB option DATA_FLUSH_INTERNAL_SECONDS Compile Execute Plan store Runtime stats Query Store schema Query data store Collects query texts (plus all relevant properties) Stores all plan choices and performance metrics Works across restarts / upgrades / recompiles Dramatically lowers the bar for performance troubleshooting New Views Intuitive and easy plan forcing Performance
  • 14.
    The Query Store featureprovides DBAs with insight on query plan choice and performance Monitoring performance by using the Query Store Performance
  • 15.
    Summary: Query Store Capability QueryStore helps customers quickly find and fix query performance issues Query Store is a ‘flight data recorder’ for database workloads Benefits Greatly simplifies query performance troubleshooting Provides performance stability across SQL Server upgrades Allows deeper insight into workload performance Performance
  • 16.
  • 17.
    JSON in SQLServer [ { "Number":"SO43659", "Date":"2011-05-31T00:00:00" "AccountNumber":"AW29825", "Price":59.99, "Quantity":1 }, { "Number":"SO43661", "Date":"2011-06-01T00:00:00“ "AccountNumber":"AW73565“, "Price":24.99, "Quantity":3 } ] SO43659 2011-05-31T00:00:00 MSFT 59.99 1 SO43661 2011-06-01T00:00:00 Nokia 24.99 3 Table 2 JSON Formats result set as JSON text. JSON 2 table Migrates JSON text to table Built-in functions ISJSON JSON_VALUE JSON_MODIFY Performance
  • 18.
    Main facts No customtype or index Store as NVARCHAR Does JSON work with X? Does NVARCHAR work with X? Yes, with in-memory, row-level security, stretch, compression, encryption, and more Yes, with all client drivers Different from DocumentDB
  • 19.
    Table to JSON JSONoutput: SO43659 2011-05-31T00:00:00 MSFT 59.99 1 SO43661 2011-06-01T00:00:00 Nokia 24.99 3 SELECT Number AS [Order.Number], Date AS [Order.Date], Customer AS Account, Price AS 'Item.UnitPrice', Quantity AS 'Item.Qty' FROM SalesOrder FOR JSON PATH Performance
  • 20.
    CREATE TABLE SalesOrderRecord( Id int PRIMARY KEY IDENTITY, OrderNumber NVARCHAR(25) NOT NULL, OrderDate DATETIME NOT NULL, JSalesOrderDetails NVARCHAR(4000) CONSTRAINT SalesOrderDetails_IS_JSON CHECK ( ISJSON(JSalesOrderDetails)>0 ), Quantity AS CAST(JSON_VALUE(JSalesOrderDetails, '$.Order.Qty') AS int) ) GO CREATE INDEX idxJson ON SalesOrderRecord(Quantity) INCLUDE (Price); Built-in functions JSON is plain text ISJSON guarantees consistency Optimize further with computed column and INDEX
  • 21.
    Summary: JSON Capability Greatly enhancesdeveloper productivity Benefits Added native JSON support in the core database engine supports schema-free data. Tackle more diverse data types right in SQL Server Support in DocumentDB Performance
  • 22.
  • 23.
    No change inprogramming model New Insights INSERT / BULK INSERT UPDATE DELETE MERGE DML SELECT * FROM temporal Querying How to start with temporal CREATE temporal TABLE PERIOD FOR SYSTEM_TIME… ALTER regular_table TABLE ADD PERIOD… DDL FOR SYSTEM_TIME AS OF FROM..TO BETWEEN..AND CONTAINED IN Temporal Querying ANSI 2011 compliant Performance
  • 24.
    Provides correct information aboutstored facts at any point in time, or between two points in time There are two orthogonal sets of scenarios with regards to temporal data: System (transaction)-time Application-time SELECT * FROM Person.BusinessEntityContact FOR SYSTEM_TIME BETWEEN @Start AND @End WHERE ContactTypeID = 17 Performance Temporal database support: BETWEEN
  • 25.
    Summary: temporal Capability Greatly enhancesdeveloper productivity Benefits Added temporal database support so you can record, audit, and query data changes over time
  • 26.
    Performance Security AvailabilityScalability Operational analytics Insights on operational data; Works with in-memory OLTP and disk-based OLTP In-memory OLTP enhancements Greater T-SQL surface area, terabytes of memory supported, and greater number of parallel CPUs Query data store Monitor and optimize query plans Native JSON Expanded support for JSON data Temporal database support Query data as points in time Always encrypted Sensitive data remains encrypted at all times with ability to query Row-level security Apply fine-grained access control to table rows Dynamic data masking Real-time obfuscation of data to prevent unauthorized access Other enhancements Audit success/failure of database operations TDE support for storage of In- Memory OLTP tables Enhanced auditing for OLTP with ability to track history of record changes Enhanced AlwaysOn Three synchronous replicas for auto failover across domains Round robin load balancing of replicas Automatic failover based on database health DTC for transactional integrity across database instances with AlwaysOn Support for SSIS with AlwaysOn Enhanced database caching Cache data with automatic, multiple TempDB files per instance in multi-core environments Mission-critical performance
  • 27.
  • 28.
    Prevents data disclosure Client-side encryptionof sensitive data using keys that are never given to the database system Queries on encrypted data Support for equality comparison, including join, group by, and distinct operators Application transparency Minimal application changes via server and client library enhancements Allows customers to securely store sensitive data outside of their trust boundary. Data remains protected from high-privileged, yet unauthorized users. The need for Always Encrypted Security
  • 29.
    How it works Helpprotect data at rest and in motion, on-premises and in the cloud SQL Server or SQL Database ADO .NET Name Wayne Jefferson Name 0x19ca706fbd9a Result SetResult Set Client Name SSN Country 0x19ca706fbd9a 0x7ff654ae6d USA dbo.Customers ciphertext "SELECT Name FROM Customers WHERE SSN = @SSN", 0x7ff654ae6d ciphertext "SELECT Name FROM Customers WHERE SSN = @SSN", "111-22-3333" Encrypted sensitive data and corresponding keys are never seen in plaintext in SQL Server trust boundary Security
  • 30.
    Select columns to beencrypted Analyze schema and application queries to detect conflicts (build time)Set up the keys: master & CEK Static schema analysis tool (SSDT only) UI for selecting columns (no automated data classification) Key setup tool to automate selecting CMK, generating and encrypting CEK, and uploading key metadata to the database Setup (SSMS or SSDT) User experience: SSMS or SSDT (Visual Studio) Security
  • 31.
    Data remains encrypted duringquery Summary: Always Encrypted Protect data at rest and in motion, on-premises and in the cloud Capability ADO.Net client library provides transparent client-side encryption, while SQL Server executes T-SQL queries on encrypted data Benefits Apps TCE-enabled ADO .NET library SQL ServerEncrypted query Columnar key No app changes Master key Security
  • 32.
  • 33.
    Fine-grained access controlover specific rows in a database table Help prevent unauthorized access when multiple users share the same tables, or to implement connection filtering in multitenant applications Administer via SQL Server Management Studio or SQL Server Data Tools Enforcement logic inside the database and schema is bound to the table Protect data privacy by ensuring the right access across rows SQL Database Customer 1 Customer 2 Customer 3 The need for row-level security Security
  • 34.
    Fine-grained access control Keeping multitenant databasessecure by limiting access by other users who share the same tables Application transparency RLS works transparently at query time, no app changes needed Compatible with RLS in other leading products Centralized security logic Enforcement logic resides inside database and is schema-bound to the table it protects providing greater security. Reduced application maintenance and complexity Store data intended for many consumers in a single database/table while at the same time restricting row-level read and write access based on users’ execution context. Benefits of row-level security (RLS) Security
  • 35.
    Security CREATE FUNCTION dbo.fn_securitypredicate(@wingint) RETURNS TABLE WITH SCHEMABINDING AS return SELECT 1 as [fn_securitypredicate_result] FROM StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing; CREATE SECURITY POLICY dbo.SecPol ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON Patients WITH (STATE = ON) Fine-grained access control over rows in a table based on one or more pre-defined filtering criteria, such as user’s role or clearance level in organization Concepts: Predicate function Security policy Example
  • 36.
    Two App user (e.g.,nurse) selects from Patients table Three Security Policy transparently rewrites query to apply filter predicate Database Policy Manager CREATE FUNCTION dbo.fn_securitypredicate(@wing int) RETURNS TABLE WITH SCHEMABINDING AS return SELECT 1 as [fn_securitypredicate_result] FROM StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing; CREATE SECURITY POLICY dbo.SecPol ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON Patients WITH (STATE = ON) Filter Predicate: INNER JOIN… Security Policy Application Patients Nurse SELECT * FROM Patients SELECT * FROM Patients SEMIJOIN APPLY dbo.fn_securitypredicate(patients.Wing); SELECT Patients.* FROM Patients, StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND Patients.wing = d.Wing; RLS in three steps Security
  • 37.
    Summary: RLS Capability Row-level securityprovides fine-grained access control over rows in a table based on conditions you set up Benefits Store data for many users in the same databases and tables while limiting access by other users who share the same tables Security
  • 38.
    Dynamic data masking SQLServer 2016 SQL Database
  • 39.
    Configuration made easyin the new Azure portal Policy-driven at the table and column level, for a defined set of users Data masking applied in real-time to query results based on policy Multiple masking functions available (e.g. full, partial) for various sensitive data categories (credit card numbers, SSN, etc.) SQL Database SQL Server 2016 Table.CreditCardNo 4465-6571-7868-5796 4468-7746-3848-1978 4484-5434-6858-6550 Real-time data masking; partial masking Dynamic data masking Prevent the abuse of sensitive data by hiding it from users Security
  • 40.
    Regulatory compliance Sensitive data protection Agility and transparency Datais masked on the fly, with underlying data in the database remaining intact. Transparent to the application and applied according to user privilege Limit access to sensitive data by defining policies to obfuscate specific database fields, without affecting the integrity of the database. Benefits of dynamic data masking Security
  • 41.
    How it works On-the-flyobfuscation of data in query results Policy-driven on the table and column Multiple masking functions available for various sensitive data categories Flexibility to define a set of privileged logins for un-masked data access By default, database owner is unmasked See: https://msdn.microsoft.com/en-us/library/mt130841.aspx Azure DB Table.CreditCardNo 4465-6571-7868-5796 4468-7746-3848-1978 4484-5434-6858-6550 On-the-fly masking of sensitive data in query results Dynamic masking Limit sensitive data exposure by obfuscating it to non-privileged users Security
  • 42.
    Dynamic data maskingwalkthrough ALTER TABLE [Employee] ALTER COLUMN [SocialSecurityNumber] ADD MASKED WITH (FUNCTION = ‘SSN()’) ALTER TABLE [Employee] ALTER COLUMN [Email] ADD MASKED WITH (FUNCTION = ‘EMAIL()’) ALTER TABLE [Employee] ALTER COLUMN [Salary] ADD MASKED WITH (FUNCTION = ‘RANDOM(1,20000)’) GRANT UNMASK to admin1 1) Security officer defines dynamic data masking policy in T-SQL over sensitive data in Employee table2) Application user selects from Employee table3) Dynamic data masking policy obfuscates the sensitive data in the query results SELECT [Name], [SocialSecurityNumber], [Email], [Salary] FROM [Employee] Security
  • 43.
    Summary: dynamic datamasking Capability Protects against unauthorized disclosure of sensitive data in the application Benefits Enables you to set up policies at the table and column level that provide multiple masking functions Allows certain privileged logins to see the data unmasked Security
  • 44.
  • 45.
    More than twoautomatic failover targets Increased solution scale Increased resiliency Now any sync secondary can be a target for automatic failover Total of three automatic failover targets Availability
  • 46.
    Log transport performance Newhardware pushes boundaries Very high transaction rates have caused problems when coupled with fast hardware (i.e. PCIe flash storage) The entire pipeline has been reworked end to end Result is much lower CPU consumption, and much better performance Performance bar: comparison to the performance of a standalone server Availability
  • 47.
    Distributed Transaction Coordinator(DTC) support Currently, any distributed transactions touching a database in an availability group are not allowed Many customers run unsupported, at risk to their data and reputation Many enterprise applications need cross-database transactions Fully supported in SQL Server 2016 Joint effort with Windows Requires specific patch in order to work cleanly Other requirements: • Availability groups must be running on Windows Server 2016 Technical Preview 2 • Availability groups must be created with the CREATE AVAILABILITY GROUP command and the WITH DTC_SUPPORT = PER_DB clause. You cannot currently alter an existing availability group • Learn more: https://msdn.microsoft.com/en-us/library/ms366279.aspx Availability
  • 48.
    Database-level failover trigger Currently,Availability Groups only monitor the health of the instance A database can be offline or corrupt, but will not trigger a failover as long as the instance itself is healthy SQL Server 2016: option to also monitor the health of the databases in the Availability Group Databases going offline trigger a change in the health status Availability
  • 49.
    Summary: enhanced AlwaysOn Capability Forscalability, SQL Server 2016 adds in load balancing of readable secondaries Increases the number of auto-failover targets from two to three Benefits Log transport performance has been improved Support for Distributed Transaction Coordinator (DTC) — enrolled transactions for Availability Group databases Database-level health monitoring gMSA: domain-level accounts that are automatically managed Availability
  • 50.
    Performance Security AvailabilityScalability Operational analytics Insights on operational data; Works with in-memory OLTP and disk-based OLTP In-memory OLTP enhancements Greater T-SQL surface area, terabytes of memory supported, and greater number of parallel CPUs Query data store Monitor and optimize query plans Native JSON Expanded support for JSON data Temporal database support query data as points in time Always encrypted Sensitive data remains encrypted at all times with ability to query Row-level security Apply fine-grained access control to table rows Dynamic Data Masking Real-time obfuscation of data to prevent unauthorized access Other enhancements Audit success/failure of database operations TDE support for storage of in- memory OLTP tables Enhanced auditing for OLTP with ability to track history of record changes Enhanced AlwaysOn Three synchronous replicas for auto failover across domains Round robin load balancing of replicas Automatic failover based on database health DTC for transactional integrity across database instances with AlwaysOn Support for SSIS with AlwaysOn Enhanced database caching Cache data with automatic, multiple TempDB files per instance in multicore environments Mission-critical performance
  • 51.
  • 52.
    Access any dataScale and manage Powerful insights Advanced analytics PolyBase Insights from data across SQL Server and Hadoop with the simplicity of T-SQL Enhanced SSIS Designer support for previous SSIS versions Enterprise-grade Analysis Services Enhanced performance and scalability for Analysis Services Single SSDT in Visual Studio 2015 (CTP3) Build richer analytics solutions as part of your development projects in Visual Studio Enhanced MDS Excel add-in 15x faster; more granular security roles; archival options for transaction logs; and reuse entities across models Mobile BI Business insights for your on- premises data through rich visualization on mobile devices with native apps for Windows, iOS, and Android Enhanced Reporting Services New modern reports with rich visualizations R integration (CTP3) Bringing predictive analytic capabilities to your relational database Expand your “R” script library with Microsoft Azure Marketplace Deeper insights across data
  • 53.
  • 54.
    PolyBase and queries Providesa scalable, T-SQL-compatible query processing framework for combining data from both universes Access any data
  • 55.
    PolyBase View inSQL Server 2016 PolyBase View • Execute T-SQL queries against relational data in SQL Server and ‘semi-structured’ data in HDFS and/or Azure • Leverage existing T-SQL skills and BI tools to gain insights from different data stores • Expand the reach of SQL Server to Hadoop(HDFS) Access any data
  • 56.
  • 57.
    SSIS improvements forSQL Server 2016 AlwaysOn support Incremental deployment of packages Improved project upgrade support CTP3 enhancements Error column name support Custom log level Package template OData V4 support Designer improvements One designer multi-version support AlwaysOn Availability Groups Secondary for SSISDB New York (Primary) New Jersey (Secondary) SSIS DB SSIS DB SQL Server 2012 SSIS Project X SQL Server 2016 SSIS Project X Improved project upgrade Access any data
  • 58.
    Package template (CTP3) Reusecode as templates Developer can save part of the package as a template and reuse it in the design of other packages Access any data
  • 59.
    Capability DBA can setup AlwaysOn Availability Groups for the SSIS catalog Deploy one or more packages to an existing or new project without deploying the whole project Benefits Customize your own log levels for more flexibility See the error column name in both the data viewer and editor Create reusable code by making a package template OData Source support for V4 Protocol Summary: SSIS improvement Access any data
  • 60.
  • 61.
    Analysis Services themesfor SQL Server 2016 Improved productivity and performance Increased productivity Scale and manage
  • 62.
    Scale your tabular modelswith support for high-end servers More memory More cores Summary: enterprise-grade Analysis Services Deliver high performance and scalability for your BI solutions High-end server hardware Capability Tabular and MOLAP modeling enhancements High-performance Direct Query for Tabular Additional tools for administrators Performance and data source updates Benefits Scale and manage
  • 63.
  • 64.
    Capability SSDT-BI and SSMSfor Visual Studio 2015 Rich data modeling enhancements New DAX analytical functions MDX Query Plan tool for performance optimizations and troubleshooting Benefits{JSON} Rich BI application platform Develop and deliver BI solutions faster and at lower costs Scale and manage
  • 65.
  • 66.
  • 67.
    Performance and scale Overallperformance and scale improvements Target of 15x performance improvement for Excel add-in Increased performance for bulk entity-based staging operations Security improvements New security roles for more granular permissions around read, write, and delete Multiple system administrators Manageability and modeling Archive transaction logs Reuse of entities across models Support for compound keys Name and Code attributes can be renamed Summary: MDS improvements Scale and manage
  • 68.
  • 69.
    Modern Report Builderlook and feel Visual Studio 2015 support Modern reports Powerful insights
  • 70.
    Consume anywhere, anytime Find,view, and manage through modern web portal Support for modern HTML5 browsers Printing without plug-ins PowerPoint rendering and export Powerful insights
  • 71.
    Summary: Enhanced ReportingServices Modern design tools Support for latest enterprise data source Expanded browser support Secure access Power BI integration  Report consumption from modern browsers  Improved parameters  Modern themes  New chart types Powerful insights
  • 72.
  • 73.
    R Integration inSQL Server will be Revolutionary
  • 74.
    Capability Extensible in-database analytics,integrated with R, exposed through T-SQL Centralize enterprise library for analytic models Benefits SQL Server Analytical engines Full R integration Fully extensible Data Management Layer Relational data T-SQL interface Stream data in-memory Analytics library Share and collaborate Manage and deploy R + Data Scientists Business Analysts Publish algorithms, interact directly with data Analysis through TSQL, tools, and vetted algorithms DBAs Manage storage and analytics together Summary: R integration and advanced analytics Advanced analytics
  • 75.
  • 76.
    Ever-growing data, ever-shrinkingIT What to do? Expand server and storage Move data elsewhere Delete Massive tables (hundreds of millions/billions of rows, TBs size) Users want/need to retain data indefinitely Cold data infrequently accessed but must be online Datacenter consolidation Maintenance challenges Business SLAs at risk Hybrid solutions
  • 77.
    Capability Stretch large operationaltables from on-premises to Azure with the ability to query Benefits Stretch SQL Server into Azure Securely stretch cold tables to Azure with remote query processing SQL SERVER 2016 Azure Hybrid solutions
  • 78.
    Stretch Database architecture Howit works Creates a secure linked server definition in the on-premises SQL Server Linked server definition has the remote endpoint as the target Provisions remote resources and begins to migrate eligible data, if migration is enabled Queries against tables run against both the local database and the remote endpoint Remote endpoint Remote data Azure InternetBoundary Local database Local data Eligible data Linked Servers Hybrid solutions
  • 79.
    Queries continue working •Business applications continue working without disruption • DBA scripts and tools work as before. All controls still held in local SQL Server • Developers continue building or enhancing applications with existing tools and methods Hybrid solutions
  • 80.
    Order history Name SSNDate Jane Doe cm61ba906fd 2/28/2005 Jim Gray ox7ff654ae6d 3/18/2005 John Smith i2y36cg776rg 4/10/2005 Bill Brown nx290pldo90l 4/27/2005 Sue Daniels ypo85ba616rj 5/12/2005 Sarah Jones bns51ra806fd 5/22/2005 Jake Marks mci12hh906fj 6/07/2005 Eric Mears utb76b916gi 6/18/2014 Rachel Hogan px61hi9306fj 7/1/2014 Sam Johnson ol43bi506gd 7/12/2014 David Simon tx83hal916fi 7/29/2014 Order history Name SSN Date Jane Doe cm61ba906fd 2/28/2005 Jim Gray ox7ff654ae6d 3/18/2005 John Smith i2y36cg776rg 4/10/2005 Bill Brown nx290pldo90l 4/27/2005 Customer data Product data Order History Stretch to cloud App Query Microsoft Azure  Jim Gray ox7ff654ae6d 3/18/2005 Hybrid solutions
  • 81.
  • 82.
  • 83.
    Azure Data Lakeand Data Factory
  • 84.
  • 85.