Conociendo los cambios de
SQL Server a partir de 2012 a 2016
Jose Redondo
Microsoft Data Platform MVP Latam
Quien soy?
Jose Redondo
Data Platform MVP Latam | Arquitecto de datos | Experto en soluciones
de Inteligencia de Negocio y Bodegas de datos | Consultor |
Conferencista Microsoft en Latinoamérica y USA
Amante del compartir el conocimiento tecnológico y la buena cultura
Twitter: @redondoj
LinkedIn: linkedin.com/in/redondoj
Blog: redondoj.wordpress.com
E-Mail: redondoj@gmail.com
Agenda
• Introducción
• Posicionamiento en el mercado
• Motor de base de datos
• Servidor de reportes
• Servicio R
Introducción
• Edición 32 bits – ADIOS…
• SQL Server Management Tools
Installation se efectúa
separadamente de la instalación
del servidor
• SQL Server Developer Edition es
FREE…
• Actualizable sin problemas desde
el SP3 de SQL Server 2008
Opinionesdelmercado Pros Holdings utilizan actualmente SQL Server 2016 anunciando el superior rendimiento
del servidor así como del servicio R incorporándolo en sus actividades de analítica
avanzada teniendo como resultado una ejecución 100x veces de rapidez.
Carga de complejos esquemas derivados desde TPC-H a unos 1.6TB/hora, tardando solo
5.3 segundos para ejecutar una consulta compleja (El mínimo coste provisto por el
query) en una base de datos de 100TB.
Por seis años consecutivos, SQL Server ha tenido menos vulnerabilidades en comparación
con las principales plataformas de bases de datos según reporte de NIST.
Posicionamiento en el mercado
Motor de base de datos
• Que es lo novedoso y atractivo
desde la versión 2012 hasta la
actual
• Características mejoradas en el
motor de datos
• T-SQL
• Vistas del sistema
• Seguridad
• Alta disponibilidad
• Replicación
• Herramientas
Que son los índices de almacenamiento columnar
Almacenamiento columnar
y sus nuevas características
Procesamiento por lotes
Optimización de memoria
Compresión
Grupo de registro y eliminación de segmentos
A B C D
A B C D
A B C D
A B C D
A B C D
A B C D
A B C D
A B C D
A B C D
A
A
A
A
A
A
A
A
A
Que son los índices de almacenamiento columnar
y sus nuevas características
• Ejecución por lotes para consultas multi-
threaded
• Ejecución por lotes para consultas single-
threaded
• Opción de compresión de archivo
• Aislamiento de instantánea y de read-
committed
• Especificar los índices de almacenamiento
columnar cuando se crea una tabla
• AlwaysOn soporta ColumnStore Indexes
• AlwaysOn Readable Secondary admite solo
lectura en Nonclustered ColumnStore Index
• AlwaysOn Readable Secondary admite
actualizaciones de los ColumnStore Indexes
Que son los índices de almacenamiento columnar
y sus nuevas características
• Índice de almacenamiento columnar de solo
lectura en Heap o BTree
• Índice actualizable de almacenamiento columnar
agrupados en Heap or BTree
• Índice BTree adicionales son permitidos en Heap o
BTree que tiene un índice no agrupado
Nonclustered ColumnStore Index
• Índice actualizable Clustered ColumnStore Index
• Índice BTree en un Clustered ColumnStore Index
• Índice de almacenamiento columnar en una tabla
de memoria optimizada
• Definición de índice Nonclustered ColumnStore
apoya el uso de condiciones de filtrado
• Opción de retardo de compresión para
ColumnStore Indexes en los comandos T-SQL
CREATE TABLE y ALTER TABLE
Introducción a InMemory-OLTP
Nosotros donde estamos pasando mas tiempo ejecutando procesos?
Aquí estan los resultados del análisis de Microsoft
I/O, Thread
Management
Storage Engine Relational Engine
Communication
Stack
10% 80% 10%Access Methods,
Transaction, Lock, Log,
Managers
T-SQL Interpreter, Query
Execution, Expressions
0
200
400
600
800
1000
1200
1400
1600
1800
2000
2000
2000
2001
2001
2001
2002
2002
2003
2003
2004
2005
2006
2006
2007
2007
2008
2008
2009
2009
2010
2010
2010
2011
2012
2012
2013
2013
2014
2014
$/1000 Mb
$/1000 Mb
SQL 2005
SQL 2008 R2
SQL 2008
SQL 2012
SQL 2014
SQL 2000
Introducción a InMemory-OLTP
Introducción a InMemory-OLTP
• Llamado inicialmente
Proyecto “Hekaton”
• Disponible desde la
versión 2014
• Mejorada en 2016
Arquitectura
Client Application
Tabular Data Stream (TDS) Handler / Session Management
T-SQL Execution
Buffer Pool for Tables
and Indexes
Parser,
Catalog and
Optimizer
InMemory
Native Compiler
Storage Engine for Memory
Optimized Tables and Indexes
Native Compiled
Stored Procedures
and Schema
Sqlserv.exe
Memory Optimized
Table Filegroup
Transaction Log Data Filegroup
Generated DLL
InMemory
Component
Existing SQL
Component
Checkpoint Files / Recovery
Query
interoperability
Introducción a InMemory-OLTP
Porque es mas rápido?
Objetos compilados
• Evita los pasos de compilación de código interpretado.
Introducción a InMemory-OLTP
Mejoras
• Soporta 2TB de durabilidad en tablas (Versión 2014 -> 256GB)
• LOBs con tamaño de la gran filas de registros de una tabla de
memoria optimizado
• Mejoras de Transact-SQL para las tablas de memoria optimizado
• Índices UNIQUE, referencias de FOREIGN KEY, Restricciones CHECK, TRIGGERs
• Un índice non-unique puede permitir valores NULL en la clave
• Mayor soporte para tablas de Altering Memory-Optimized
• Compilación escalar UDFs de forma nativa, {LEFT|RIGHT} OUTER JOIN,
Disyunción (OR, NOT)
• Cláusula OUTPUT en procedimientos almacenados nativamente
compilados
• Menor tiempo de inactividad durante la actualización
• Soporte para TDE
Query Store
Query Store
• Soporte para código nativo
compilado desde cargas de
trabajo In-Memory OLTP
• Automáticamente captura un
historial de consultas, planes y
estadísticas de tiempo de
ejecución y conserva estas para
su revisión posterior
ALTER DATABASE WideWorldImportersDW SET QUERY_STORE = ON;
Live Query Statistics
Tablas Temporales
• Tabla Temporal consiste en
dos tablas, una para datos y
otra para los datos históricos
• Es nuevo tipo de tabla de
usuario en SQL Server 2016
• Auditar todos los cambios
• Reconstruir el estado de los
datos a partir de cualquier
momento en el pasado
Tablas Temporales
• Cálculo de tendencias en el
tiempo
• Mantener Slowly Changing
Dimension para aplicaciones
de soporte de decisiones
• Recuperación de cambios de
datos accidentales y errores
de aplicación
Row Level Security
Row-Level Security - RLS (Seguridad de nivel de fila) restringe que los usuarios puedan ver datos
específicos en una tabla, basado en una función
Row Level Security
Row Level Security
Always Encrypted
• Datos cifrados en caliente y en
reposo
• Mejor que TDE, se cifran para
todos los usuarios, incluso los
administradores.
• Encriptación Determinista o
Aleatorio
• Versión 4.6 o superior de .Net
Framework
Todas las claves de cifrado reside con la aplicación en el entorno del cliente y no en el servidor
Dynamic Data Masking
{JSON} - (JavaScript Object Notation)
4 Funciones nativas
• ISJSON – Comprueba si una cadena contiene JSON válido
• JSON_VALUE – Extrae el valor de JSON
• JSON_QUERY – Extrae las Subconsultas de JSON
• OPEN_JSON – Tabla de función que analiza texto JSON y
devuelve rowsetview de JSON
Select IsJSON('{"name":“Jose",“family":“Redondo","age":33}')
Select * from OpenJSON('{"name":“Jose",“family":“JoseRedondo","age":33}‘)
Stretch Database
Real-time Operational Analytics
In-Memory ColumnStore + In-Memory OLTP = Real-time Operational Analytics
• El tamaño de clave de índice máximo para los
índices no agrupados se ha aumentado a 1700
bytes
• El comando TRUNCATE TABLE ahora permite el
truncamiento de particiones especificados
• ALTER TABLE permite ahora que muchos
cambios para la modificaciones de columna se
puedan realizar mientras la tabla sigue estando
disponible
• El índice de texto completo (Full-Text Index -
DMV)
"sys.dm_fts_index_keywords_position_by_docume
nt" devuelve la posición de palabras claves en los
documentos
• Una nueva sugerencia de consulta
NO_PERFORMANCE_SPOOL puede impedir que
un operador se agregue a los planes de
consultas
Mejoras en Transact-SQL
• Nueva sintaxis de DROP IF se agrega para
instrucciones de eliminación
• SESSION_CONTEXT ahora se puede establecer
con EXEC sp_set_session_context 'user_id', 4;
Seleccione SESSION_CONTEXT(N'user_id');
• Nuevos comandos para la manipulación de las
cadenas de texto: STRING_SPLIT y
STRING_ESCAPE
• Las funciones de COMPRESS y DECOMPRESS
convierten valores dentro y fuera del algoritmo
GZIP
• Nuevos comandos para la manipulación de las
funciones de fechas y horas: DATEDIFF_BIG y AT
TIME ZONE, y la función sys.time_zone_info
• Ocho nuevas propiedades se agregan a
SERVERPROPERTY
• Se elimina el límite de longitud de entrada de
8.000 bytes para la función HASHBYTES
Mejoras en Transact-SQL
Polybase
PolyBase es una tecnología que accede y combina los datos tanto relacionales como no
relacionales internamente en SQL Server
SELECT * FROM dbo.DatosRFIDI95
WHERE Speed > 75
OPTION (FORCE EXTERNALPUSHDOWN);
• Striped Backups para Microsoft Azure Blob
Storage
• File-Snapshot Backups para Microsoft Azure Blob
Storage
• Copias de seguridad administradas
• Replicación es ahora soportada para Azure SQL
Database
• Stretch Database
• Migra los datos históricos de forma transparente y
segura a la nube en Microsoft Azure
• Comportamientos de Trace Flag 4199 están
habilitados
Otras características
• No es necesario usar Trace Flag 4199 en SQL
Server 2016 ya que se puede realizar desde el
optimizador de consultas
• TempDB Database
• Limite en las relaciones del Foreign Key
• El límite para el número de tabla y columnas que
pueden hacer referencia en las consultas en una
sola tabla paso de 253 a 10.000
• Soporte para UTF-8
• Utilidad BCP, BULK INSERT, y OPENROWSET ahora
son soportados por el paginado de código UTF-8
• CPU mas amigable para la Transparent Data
Encryption
• AES Encryption para Endpoints
• Database Scoped Credential
• Replicación de las tablas optimizadas en memoria
Otras características
• SQL Server Standard Edition de 2016 ahora apoya
la disponibilidad de grupos básicos
• Equilibrio de carga de las solicitudes de conexión
read-intent es ahora soportado en un conjunto de
réplicas de sólo lectura
• El número de réplicas que admiten la
conmutación por error automática se ha
aumentado de dos a tres
• Group Managed Service Accounts son
compatibles para Always On Failover Clusters
Alta disponibilidad
• Always On Availability Groups admite
transacciones distribuidas y el DTC en Windows
Server 2016
• Ahora puede configurar siempre en la
disponibilidad Always On Availability Groups de
failover cuando una base de datos está offline
• Always On ahora soporta bases de datos cifradas
• Dos grupos de disponibilidad en dos separados
Windows Server Failover Clusters (WSFC) ahora se
pueden combinar en un Distributed Availability
Group
• Direct seeding permite una réplica secundaria a
ser establecida automáticamente sobre la red
Alta disponibilidad
Servidor de reportes
• Nuevo Portal Web de Reporting
Services
• Marca personalizada para el
portal web
• Indicadores clave de rendimiento
(KPI) en el Portal Web
• Mobile Reports
• Mobile Report Publisher
• PDF sustituye a ActiveX para
Remote Printing
• Exportación a PowerPoint
• Elementos Pin Report para
Power BI Dashboard
• Motor HTML 5
Servicio R
Podemos continuar trabajando con las herramientas R o
de SQL de nuestra elección PERO el análisis a la escala a
miles de millones de registros sin hardware adicional,
mejora el rendimiento y evitar los movimientos
innecesarios de datos
Preguntas & Respuestas
Gracias por su asistencia
Microsoft SQL Server 2016

Conociendo los cambios de SQL Server a partir de 2012 a 2016

  • 1.
    Conociendo los cambiosde SQL Server a partir de 2012 a 2016 Jose Redondo Microsoft Data Platform MVP Latam
  • 2.
    Quien soy? Jose Redondo DataPlatform MVP Latam | Arquitecto de datos | Experto en soluciones de Inteligencia de Negocio y Bodegas de datos | Consultor | Conferencista Microsoft en Latinoamérica y USA Amante del compartir el conocimiento tecnológico y la buena cultura Twitter: @redondoj LinkedIn: linkedin.com/in/redondoj Blog: redondoj.wordpress.com E-Mail: redondoj@gmail.com
  • 3.
    Agenda • Introducción • Posicionamientoen el mercado • Motor de base de datos • Servidor de reportes • Servicio R
  • 4.
    Introducción • Edición 32bits – ADIOS… • SQL Server Management Tools Installation se efectúa separadamente de la instalación del servidor • SQL Server Developer Edition es FREE… • Actualizable sin problemas desde el SP3 de SQL Server 2008
  • 5.
    Opinionesdelmercado Pros Holdingsutilizan actualmente SQL Server 2016 anunciando el superior rendimiento del servidor así como del servicio R incorporándolo en sus actividades de analítica avanzada teniendo como resultado una ejecución 100x veces de rapidez. Carga de complejos esquemas derivados desde TPC-H a unos 1.6TB/hora, tardando solo 5.3 segundos para ejecutar una consulta compleja (El mínimo coste provisto por el query) en una base de datos de 100TB. Por seis años consecutivos, SQL Server ha tenido menos vulnerabilidades en comparación con las principales plataformas de bases de datos según reporte de NIST.
  • 6.
  • 7.
    Motor de basede datos • Que es lo novedoso y atractivo desde la versión 2012 hasta la actual • Características mejoradas en el motor de datos • T-SQL • Vistas del sistema • Seguridad • Alta disponibilidad • Replicación • Herramientas
  • 8.
    Que son losíndices de almacenamiento columnar Almacenamiento columnar y sus nuevas características Procesamiento por lotes Optimización de memoria Compresión Grupo de registro y eliminación de segmentos A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A A A A A A A A A
  • 9.
    Que son losíndices de almacenamiento columnar y sus nuevas características • Ejecución por lotes para consultas multi- threaded • Ejecución por lotes para consultas single- threaded • Opción de compresión de archivo • Aislamiento de instantánea y de read- committed • Especificar los índices de almacenamiento columnar cuando se crea una tabla • AlwaysOn soporta ColumnStore Indexes • AlwaysOn Readable Secondary admite solo lectura en Nonclustered ColumnStore Index • AlwaysOn Readable Secondary admite actualizaciones de los ColumnStore Indexes
  • 10.
    Que son losíndices de almacenamiento columnar y sus nuevas características • Índice de almacenamiento columnar de solo lectura en Heap o BTree • Índice actualizable de almacenamiento columnar agrupados en Heap or BTree • Índice BTree adicionales son permitidos en Heap o BTree que tiene un índice no agrupado Nonclustered ColumnStore Index • Índice actualizable Clustered ColumnStore Index • Índice BTree en un Clustered ColumnStore Index • Índice de almacenamiento columnar en una tabla de memoria optimizada • Definición de índice Nonclustered ColumnStore apoya el uso de condiciones de filtrado • Opción de retardo de compresión para ColumnStore Indexes en los comandos T-SQL CREATE TABLE y ALTER TABLE
  • 11.
    Introducción a InMemory-OLTP Nosotrosdonde estamos pasando mas tiempo ejecutando procesos? Aquí estan los resultados del análisis de Microsoft I/O, Thread Management Storage Engine Relational Engine Communication Stack 10% 80% 10%Access Methods, Transaction, Lock, Log, Managers T-SQL Interpreter, Query Execution, Expressions
  • 12.
  • 13.
    Introducción a InMemory-OLTP •Llamado inicialmente Proyecto “Hekaton” • Disponible desde la versión 2014 • Mejorada en 2016
  • 14.
    Arquitectura Client Application Tabular DataStream (TDS) Handler / Session Management T-SQL Execution Buffer Pool for Tables and Indexes Parser, Catalog and Optimizer InMemory Native Compiler Storage Engine for Memory Optimized Tables and Indexes Native Compiled Stored Procedures and Schema Sqlserv.exe Memory Optimized Table Filegroup Transaction Log Data Filegroup Generated DLL InMemory Component Existing SQL Component Checkpoint Files / Recovery Query interoperability
  • 15.
    Introducción a InMemory-OLTP Porquees mas rápido? Objetos compilados • Evita los pasos de compilación de código interpretado.
  • 16.
    Introducción a InMemory-OLTP Mejoras •Soporta 2TB de durabilidad en tablas (Versión 2014 -> 256GB) • LOBs con tamaño de la gran filas de registros de una tabla de memoria optimizado • Mejoras de Transact-SQL para las tablas de memoria optimizado • Índices UNIQUE, referencias de FOREIGN KEY, Restricciones CHECK, TRIGGERs • Un índice non-unique puede permitir valores NULL en la clave • Mayor soporte para tablas de Altering Memory-Optimized • Compilación escalar UDFs de forma nativa, {LEFT|RIGHT} OUTER JOIN, Disyunción (OR, NOT) • Cláusula OUTPUT en procedimientos almacenados nativamente compilados • Menor tiempo de inactividad durante la actualización • Soporte para TDE
  • 17.
  • 18.
    Query Store • Soportepara código nativo compilado desde cargas de trabajo In-Memory OLTP • Automáticamente captura un historial de consultas, planes y estadísticas de tiempo de ejecución y conserva estas para su revisión posterior ALTER DATABASE WideWorldImportersDW SET QUERY_STORE = ON;
  • 19.
  • 20.
    Tablas Temporales • TablaTemporal consiste en dos tablas, una para datos y otra para los datos históricos • Es nuevo tipo de tabla de usuario en SQL Server 2016 • Auditar todos los cambios • Reconstruir el estado de los datos a partir de cualquier momento en el pasado
  • 21.
    Tablas Temporales • Cálculode tendencias en el tiempo • Mantener Slowly Changing Dimension para aplicaciones de soporte de decisiones • Recuperación de cambios de datos accidentales y errores de aplicación
  • 22.
    Row Level Security Row-LevelSecurity - RLS (Seguridad de nivel de fila) restringe que los usuarios puedan ver datos específicos en una tabla, basado en una función
  • 23.
  • 24.
  • 25.
    Always Encrypted • Datoscifrados en caliente y en reposo • Mejor que TDE, se cifran para todos los usuarios, incluso los administradores. • Encriptación Determinista o Aleatorio • Versión 4.6 o superior de .Net Framework Todas las claves de cifrado reside con la aplicación en el entorno del cliente y no en el servidor
  • 26.
  • 27.
    {JSON} - (JavaScriptObject Notation) 4 Funciones nativas • ISJSON – Comprueba si una cadena contiene JSON válido • JSON_VALUE – Extrae el valor de JSON • JSON_QUERY – Extrae las Subconsultas de JSON • OPEN_JSON – Tabla de función que analiza texto JSON y devuelve rowsetview de JSON Select IsJSON('{"name":“Jose",“family":“Redondo","age":33}') Select * from OpenJSON('{"name":“Jose",“family":“JoseRedondo","age":33}‘)
  • 28.
  • 29.
    Real-time Operational Analytics In-MemoryColumnStore + In-Memory OLTP = Real-time Operational Analytics
  • 30.
    • El tamañode clave de índice máximo para los índices no agrupados se ha aumentado a 1700 bytes • El comando TRUNCATE TABLE ahora permite el truncamiento de particiones especificados • ALTER TABLE permite ahora que muchos cambios para la modificaciones de columna se puedan realizar mientras la tabla sigue estando disponible • El índice de texto completo (Full-Text Index - DMV) "sys.dm_fts_index_keywords_position_by_docume nt" devuelve la posición de palabras claves en los documentos • Una nueva sugerencia de consulta NO_PERFORMANCE_SPOOL puede impedir que un operador se agregue a los planes de consultas Mejoras en Transact-SQL
  • 31.
    • Nueva sintaxisde DROP IF se agrega para instrucciones de eliminación • SESSION_CONTEXT ahora se puede establecer con EXEC sp_set_session_context 'user_id', 4; Seleccione SESSION_CONTEXT(N'user_id'); • Nuevos comandos para la manipulación de las cadenas de texto: STRING_SPLIT y STRING_ESCAPE • Las funciones de COMPRESS y DECOMPRESS convierten valores dentro y fuera del algoritmo GZIP • Nuevos comandos para la manipulación de las funciones de fechas y horas: DATEDIFF_BIG y AT TIME ZONE, y la función sys.time_zone_info • Ocho nuevas propiedades se agregan a SERVERPROPERTY • Se elimina el límite de longitud de entrada de 8.000 bytes para la función HASHBYTES Mejoras en Transact-SQL
  • 32.
    Polybase PolyBase es unatecnología que accede y combina los datos tanto relacionales como no relacionales internamente en SQL Server SELECT * FROM dbo.DatosRFIDI95 WHERE Speed > 75 OPTION (FORCE EXTERNALPUSHDOWN);
  • 33.
    • Striped Backupspara Microsoft Azure Blob Storage • File-Snapshot Backups para Microsoft Azure Blob Storage • Copias de seguridad administradas • Replicación es ahora soportada para Azure SQL Database • Stretch Database • Migra los datos históricos de forma transparente y segura a la nube en Microsoft Azure • Comportamientos de Trace Flag 4199 están habilitados Otras características
  • 34.
    • No esnecesario usar Trace Flag 4199 en SQL Server 2016 ya que se puede realizar desde el optimizador de consultas • TempDB Database • Limite en las relaciones del Foreign Key • El límite para el número de tabla y columnas que pueden hacer referencia en las consultas en una sola tabla paso de 253 a 10.000 • Soporte para UTF-8 • Utilidad BCP, BULK INSERT, y OPENROWSET ahora son soportados por el paginado de código UTF-8 • CPU mas amigable para la Transparent Data Encryption • AES Encryption para Endpoints • Database Scoped Credential • Replicación de las tablas optimizadas en memoria Otras características
  • 35.
    • SQL ServerStandard Edition de 2016 ahora apoya la disponibilidad de grupos básicos • Equilibrio de carga de las solicitudes de conexión read-intent es ahora soportado en un conjunto de réplicas de sólo lectura • El número de réplicas que admiten la conmutación por error automática se ha aumentado de dos a tres • Group Managed Service Accounts son compatibles para Always On Failover Clusters Alta disponibilidad
  • 36.
    • Always OnAvailability Groups admite transacciones distribuidas y el DTC en Windows Server 2016 • Ahora puede configurar siempre en la disponibilidad Always On Availability Groups de failover cuando una base de datos está offline • Always On ahora soporta bases de datos cifradas • Dos grupos de disponibilidad en dos separados Windows Server Failover Clusters (WSFC) ahora se pueden combinar en un Distributed Availability Group • Direct seeding permite una réplica secundaria a ser establecida automáticamente sobre la red Alta disponibilidad
  • 37.
    Servidor de reportes •Nuevo Portal Web de Reporting Services • Marca personalizada para el portal web • Indicadores clave de rendimiento (KPI) en el Portal Web • Mobile Reports • Mobile Report Publisher • PDF sustituye a ActiveX para Remote Printing • Exportación a PowerPoint • Elementos Pin Report para Power BI Dashboard • Motor HTML 5
  • 38.
    Servicio R Podemos continuartrabajando con las herramientas R o de SQL de nuestra elección PERO el análisis a la escala a miles de millones de registros sin hardware adicional, mejora el rendimiento y evitar los movimientos innecesarios de datos
  • 39.
  • 40.
    Gracias por suasistencia Microsoft SQL Server 2016