2. Nombre Speaker: Javier Villegas
Cargo : DBA Manager en MSC
Twitter: @javier_vill
Email: javier.ignacio.villegas@gmail.com
Blog: sql-javier-villegas.blogspot.com.ar
Nuevas Características de SQL Server 2016 para DBAs
4. Sea cual sea su pasión datos – ¡hay uncapítulo virtual para usted!
24-01-2018 | SQL Saturday #684 – Concepcion, Chile4 |
5. Sitio de la Comunidad en Chile
24-01-2018 | SQL Saturday #684 – Concepcion, Chile5 |
chile.pass.org
6. Sitio de la Comunidad Global
24-01-2018 | SQL Saturday #684 – Concepcion, Chile6 |
www.pass.org
7. 24-01-2018 | SQL Saturday #684 – Concepcion, Chile7 |
Javier Villegas
DBA Manager at Mediterranean Shipping Company (MSC)
Microsoft MVP Data Platform
Involved with the Microsoft SQL Server since SQL Server 6.5
MCP and MCTS
Blogger and MSDN Forums contributor
Specialization in SQL Server Administration, Performance Tuning and
High Availability
Frequent Speaker at NetConf , SQL Saturdays and PASS Virtual Groups
@javier_vill http://sql-javier-villegas.blogspot.com.ar/https://ar.linkedin.com/in/javiervillegas
8. 24-01-2018 | SQL Saturday #684 – Concepcion, Chile8 |
Nuevas Características
de SQL Server 2016
para DBAs
9. 01/04/2 SQL Saturday #606 –9 |
Agenda
• Repaso de las algunas de las New Features
• Instalación
• Query Store
• Live Statistics
• Mejoras en Always On
• Scope Database Setting
• Mejoras en Service Pack 1
• SQL Server 2017
24-01-2018 | SQL Saturday #684 – Concepcion, Chile9 |
10. 01/04/2 SQL Saturday #606 –10 |
New Features
• Always Encrypted
• Stretch Database
• Real-time Operational Analytics
• PolyBase into SQL Server
• Native JSON Support
• Enhanced In-Memory OLTP
• Dynamic Data Masking
24-01-2018 | SQL Saturday #684 – Concepcion, Chile10 |
11. 01/04/2 SQL Saturday #606 –11 |
Data remains encrypted
during query
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
BenefitsApps TCE-enabled
ADO .NET library
SQL ServerEncrypted
query
Columnar
key
No app
changes
Master
key
24-01-2018 | SQL Saturday #684 – Concepcion, Chile11 |
12. 01/04/2 SQL Saturday #606 –12 |
Capability
Stretch large operational tables
from on-premises to Azure with
the ability to query
Benefits
SQL
SERVER
2016
Azure
Stretch SQL Server into Azure
Securely stretch cold tables toAzure with remote query processing
24-01-2018 | SQL Saturday #684 – Concepcion, Chile12 |
15. 01/04/2 SQL Saturday #606 –15 |
Dynamic Data Masking
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.
17. 01/04/2 SQL Saturday #606 –17 |
Proceso de Instalación Mejorado
• SSMS y SSDT
• Descargas directas desde Internet, no incluidas en el DVD o Archivo ISO
• Actualizaciones Mensuales
https://msdn.microsoft.com/en-us/library/mt238290.aspx
https://msdn.microsoft.com/en-us/library/mt204009.aspx
22. 01/04/2 SQL Saturday #606 –22 |
Proceso de Instalación Mejorado
• Configurar la base TempDB desde el Setup
• Para los archivos de Datos y Logs de la TempDB
• Asignar destino, cantidad de archivos, tamaño inicial y Autogrowth
24-01-2018 | SQL Saturday #684 – Concepcion, Chile22 |
24. 01/04/2 SQL Saturday #606 –24 |
Proceso de Instalación Mejorado
• Model
• Valores de tamaño inicial son de archivos de Datos y Log
• Valores de Autogrowth expresados en KB y no en %
24-01-2018 | SQL Saturday #684 – Concepcion, Chile24 |
25. 01/04/2 SQL Saturday #606 –25 |
Live Query Statistics
SQL Server Management Studio provides the ability to view the live execution plan of an active query. This
live query plan provides real-time insights into the query execution process as the controls flow from one
query plan operator to another.
The live query plan displays the overall query progress and operator-level run-time execution statistics such
as the number of rows produced, elapsed time, operator progress, etc.
Because this data is available in real time without needing to wait for the query to complete, these execution
statistics are extremely useful for debugging query performance issues.
This feature is available beginning with SQL Server 2016 Management Studio, however it can work with SQL
Server 2014.
24-01-2018 | SQL Saturday #684 – Concepcion, Chile25 |
28. 01/04/2 SQL Saturday #606 –28 |
Query StoreHave You Ever….?
Experienced a system outsage or degradation and everyone waiting for you to magically fix the problem
ASAP?
Upgraded an application to the latest SQL Server version or deployed code and had an issue with a plan
change impact performance?
Had a desire to easily track query performance over time and gain insight into query and workload patterns
and divergences from the norm?
24-01-2018 | SQL Saturday #684 – Concepcion, Chile28 |
29. 01/04/2 SQL Saturday #606 –29 |
Query Store
Workload data recorder for your database
Queries, plans, compilation and runtime
statistics available at your fingertips
Allows you to identify and fix performance
issues in the range of minutes
Now you can easily…
Find regressed queries
Identify top resources consuming queries
Perform smooth upgrade to SQL Server 2016
Learn and optimize your workloads
24-01-2018 | SQL Saturday #684 – Concepcion, Chile29 |
30. 01/04/2 SQL Saturday #606 –30 |
Real-World applications of Query Store
Gain insights into query performance
Customer deployments in production with Query Store enabled
Find incompatible workloads running at the same time and take appropriate action
Ensure predictable performance for critical workloads
Using plan forcing for important queries to avoid performance variation
Measure performance in testing or lab environment
Used to baseline environment, then make changes and compare to the baseline
Simplify and de-risk upgrade or solution deployment
Recommended approach to upgrade from previous SQL Server version
Be in control to identify and fix regressions in minutes
24-01-2018 | SQL Saturday #684 – Concepcion, Chile30 |
31. 01/04/2 SQL Saturday #606 –31 |
Database Scoped Configuration
A new database level object holding optional configuration values to control the performance and behavior
of the application at the database level.
Current functionality allows to set it up only at the server or individual query level using query hints
Provides better isolation level for setting different options in case of multiple databases/applications running
in a single instance.
Enables lower level permissions that can be easily granted to individual database users or groups to set
some configuration options
Allows to setup the database configuration options differently for the primary and the secondary database
which might be necessary for the different types of workloads that they serve
ALTER DATABASE SCOPED CONFIGURATION (T-SQL)
24-01-2018 | SQL Saturday #684 – Concepcion, Chile31 |
32. 01/04/2 SQL Saturday #606 –32 |
Database Scoped Configuration
MAXDOP
(0,1,2, …) to control the maximum degree of parallelism for the queries in the database
This value may differ between the primary and the secondary database.
For example, if the primary database is executing an OLTP workload, the MAXDOP can be set to 1, while
for the secondary database executing reports the MAXDOP can be set to 0 (defined by the system)
LEGACY_CARDINALITY_ESTIMATION
Option to enable the legacy query optimizer Cardinality Estimation (CE) model (applicable to SQL Server
2012 and earlier), regardless of the database compatibility level setting.
PARAMETER_SNIFFING
Disable this option to instruct the query optimizer to use statistical data instead of the initial values for all
local variables and parameters when the query is compiled and optimized.
24-01-2018 | SQL Saturday #684 – Concepcion, Chile32 |
33. 01/04/2 SQL Saturday #606 –33 |
Database Scoped Configuration
QUERY_OPTIMIZER_HOTFIXES
to take advantage of the latest query optimizer hotfixes, regardless of the compatibility level of the database
CLEAR PROCEDURE_CACHE
allows to clear procedure cache at the database level without impacting other databases and without
requiring sysadmin permission
24-01-2018 | SQL Saturday #684 – Concepcion, Chile33 |
34. Live Query Statistics – Query Store
24-01-2018 | SQL Saturday #684 – Concepcion, Chile34 |
35. 01/04/2 SQL Saturday #606 –35 |
Always On
Log Transport Performance
Redesigned to work better through the entire pipeline, end to end.
Load Balancing in Readable Secondaries
Distributing the workload for read-inly transactions across all secondary replicas
Basic HA in Standard Edition
Database Mirroring replacement
24-01-2018 | SQL Saturday #684 – Concepcion, Chile35 |
36. 01/04/2 SQL Saturday #606 –36 |
Always On
Domain Independent Availability Groups
Now we can create cluster nodes without any domain requirements (even on workgroups)
New Feature in Windows Server 2016
Cross domains (with trust)
Cross domains (no trust)
No domain at all
More auto-failover targets
24-01-2018 | SQL Saturday #684 – Concepcion, Chile36 |
41. 24-01-2018 | SQL Saturday #684 – Concepcion, Chile41 |
Preguntas
Javier Villegas
Nuevas Caracteristicas de SQL Server 2016 para DBAs
@javier_vill
http://sql-javier-villegas.blogspot.com.ar
https://ar.linkedin.com/in/javiervillegas
Editor's Notes
Source: Source: https://msdn.microsoft.com/en-us/library/mt163865(v=sql.130).aspx
When it comes to mission critical security we are introducing a unique encryption technology that protects data at rest and in motion and can be full queried while encrypted. The new ADO .NET library provide transparent client-side encryption, while SQL Server executes T-SQL queries on encrypted data. The master keys stay with the application and not with SQL Server. This can work on-premises or SQL Server in Azure VM. So think about the hybrid scenarios where you wanted to take advantage of Azure cloud computing, but for certain data could not take advantage of cloud scale due to data security requirements. This technology ensures your data is always encrypted. Best of all no application changes are required.
Source: https://msdn.microsoft.com/en-us/library/dn935011(v=sql.130).aspx
Stretch Database lets you archive your historical data transparently and securely. In SQL Server 2016, Stretch Database stores your historical data in the Microsoft Azure cloud. After you enable Stretch Database, it silently migrates your historical data to an SQL Database.
You don't have to change existing queries and client apps. You continue to have seamless access to both local and remote data.
Your local queries and database operations against current data typically run faster.
You typically enjoy reduced cost and complexity.
Los metodos tradicionales solo permitian exportar los datos ETL para luego realizar el analisis de datos. Ahora esto es mucho mas rapido dado que Decimos que se puede realizer Analytics directamente sobre el motor de base de datos. Por eso decimos que es Real Time.
Utilizando la integracion con R se pueden ejecutar scripts de , por ejemplo, deteccion de fraude sobre nuestro motor transaccional
Mediante T-SQL podemos accede a cualquier tipo de motor SQL o NoSQL por lo que facilmente podemos accede a un cluster Hadoop usando T-SQL
Dynamic Data Masking nos permite enmascarar datos para que los usarios vean los mismo en forma ofuscada. Los datos están guardados sin ofuscar
Hasta la version de SQL 2014 , Management Studio SSMS venia incluido. Las actualizaciones eran casi nulas. Ahora y dado a que desconectados del paquete de Instalacion , MS actualiza SSMS mensualmente (e incluso mas de una vez al mes). Lo mismo ocurre con Data Tools
Los links siempre nos llevan a la version mas actualizada
Al abrir SSMS comprueba si hay nuevas actualizaciones disponibles
Los links siempre nos llevan a la version mas actualizada
Al abrir SSMS comprueba si hay nuevas actualizaciones disponibles
“Perform Volume Maintenance Task” anteriormente habia que asignarle este permiso a la cuenta de servicio en forma manual. Ahora lo podemos realizar desde el setup
Para Instant File initialization
Desde la instalacion podemos definir en que disco/path ubicaremos los archivos de datos y log de la TempDB asi como tambien la cantidad de archivos de datos , el tamano inicial y los valores de autogrowth
MS escucho el feedback acerca de los valores iniciales para la base model.
El autogrowth establecido en % era algo muy problematico
Desde SSMS tenemos la posibilidad de ver el plan de ejecucion estemado y actual. Ahora podemos ver tambien el plan de ejecucion en vivo de una query activa
Proporciona información en tiempo real en el proceso de ejecución de la consulta como los controles de flujo de un operador a otro plan de consulta .
El plan de consulta en vivo muestra las estadísticas generales de ejecución progreso de la consulta y de nivel de operador en tiempo de ejecución , tales como el número de filas producidas , el tiempo transcurrido , el progreso del operador, etc. Debido a que estos datos están disponibles en tiempo real sin necesidad de esperar a que la consulta completa , estas estadísticas de ejecución son extremadamente útil para depurar problemas de rendimiento de la consulta.
Podemos acceder a query live statistics para un query en particular
O desde el activity monitor a una query que se este ejecutando
Se puede hacer tambien si el motor es SQL 2014 , pero SSMS tiene que ser 2016
Resolver un problema de performance porque de repente la respuesta de la base de datos se vuelve extremadamente lenta.
Despues de un upgrade de SQL Server, los nuevos planes de ejecucion hacen que las aplicaciones no respondan como antes.
Los reportes tardan mucho mas o dan errores de time out.
Hasta hoy resolverlo nos toma mucho tiempo, especialmente los casos en que un proceso corria en pocos segundos y de repente empieza a tardar varios minutos. Que cambio ?
Hoy debemos incluso recompilar el proceso para generar un Nuevo plan que sea mas eficiente
Simplifica la solución de problemas de performance , ayudando a encontrar rápidamente las diferencias de rendimiento causadas por cambios en el plan de ejecución.
Query Store captura automáticamente un historial de queries, planes y estadísticas de tiempo de ejecución , y conserva estos para su revisión.
Se separa los datos por las ventanas de tiempo para que pueda ver los patrones de uso de bases de datos y entender cuando ocurrieron cambios en el plan de consulta en el servidor.
Incluso podemos forzar que un proceso use un plan de ejecución anterior el cual era mas eficiente.
Podemos identificar los procesos de negocio mas críticos y forzarle un plan de ejecución optimo.
En casos de upgrades de SQL, podemos estar seguros de que el plan de ejecución será mantenido en el tiempo
Tenemos control total de la performance de nuestras queries
Podemos asegurar una performance predecible para los procesos mas criticos
Facilmente medir la performance en entornos de test para crear un baseline con la cual comparer
Los upgrades de versiones de SQL y los deployments de nuestras aplicaciones ya no seran riegosos
Database Scoped Configuration. Es un Nuevo nivel de configuracion para controlar la performance y el comportamiento de las aplicaciones a nivel de la base de datos de usuario
Actialmente se puede configurar este comportamineto a nivel de instancio o por query, con los query hints
Mejor nivel de opciones de configuracion en los casos en los que tenemos varias aplicaciones y/o bases de datos corriendo en una misma instancia.
Otro uso es que podemos tener diferentes opciones de configuracion en el primario y en el secundario para poder soportar distintios tipos de workload
Las opciones de configuracion que tenemos son
MAXDOP.
Podemos configurar distintos valores de MAXDOP por base de datos. De esta forma no tenemos que valernos solo por la configuracion de MAXDOP de la instancia ni usar query hint
Un ejemplo es que en el primary podemos configurar el nivel optimo de MAXDOP para OLTP (puede ser 1) y en/los secundarios pomos usar otro diferente para ejecucion de reports
LEGACY_CARDINALITY_ESTIMATION
Por base de datos podemos especificar que se use el Cardinal Estimator anterios (SQL 2012 o anterior), sobrescribiendo el especificado por el Compatibility Level. No tenemos que usar los Trace Flags
PARAMETER_SNIFFING
Nos permite utilizer datos estadisticos en vez del primer valor de los parametris cuando una query se compila
Las opciones de configuracion que tenemos son
QUERY_OPTIMIZER_HOTFIXES.
Nos permite habilitar o no los ultimos cambios introducidos en el query optimizer
CLEAR PROCEDURE_CACHE
Podemos limpiar el procedure cache a nivel de base de datos , sin impacto en las demas bases
Se ha rediseñado la forma en que SQL realiza la transferencia de los cambios en el transaction log para poder utilizar major la red y que los cambios se aplique mas rapido en los secondaries
Antes se podia direccionar el trafico read-only solo al primer secondary, ahora se puede armar un grupo de secondaries para hacer load-balancing de todo el trafico read-only
High Availavility basico en SQL Standard Edition. Es el reemplazo de database mirroring. 2 replicas – 1 primary 1 secondary y 1 base por grupo. No read-only access en el secondary . Async o Sync
SQL 2016 combinado con Windows Server 2016 nos permite poder tener los miembros del cluster en distintos dominios, incluso en workgroups
Se pueden definer mas auto-failover targets