Bit - loader

Descubre todas las novedades de SQL Server 2016


Netmind - Descubre todas las novedades de  SQL Server 2016    Informe | Microsoft SQL Server 2016
Xavier Saladié | 30/07/15

Ahora que tenemos cambios muy interesantes a la vuelta de la esquina, como Windows 10 y SQL Server 2016, entre otros, vamos a revisar cuáles serán las nuevas funcionalidades en OLTP que Microsoft va a proporcionar en la versión 2016 de SQL Server que, a fecha de este post, está en CTP 2.1.

 

SQL-server-2016-1

Una de las novedades SQL 2016 es que los índices columnstore non-clustered serán actualizables. Está por ver si podremos hacerlo solamente en Enterprise o también en la versión Standard, confiamos en que lo esté para las 2 versiones. Pero, en cualquier caso,  la funcionalidad promete,  porque no tenía ningún sentido que la arquitectura de índices columnstores non-clustered en 2014 fuese de sólo lectura.

En relación con los planes de ejecución, disponemos de una nueva característica llamada Live Query Statistics, que nos permite visualizar los planes de ejecución de manera similar a la ejecución de un paquete SSIS, de forma que los distintos operadores del plan de ejecución van modificando su información de detalle mientras la consulta se está ejecutando. Esta especie de plugin sobre los planes de ejecución también está disponible desde el Monitor de Actividad en una nueva ficha llamada “Active Expensive Queries”. A medida que los operadores del plan van progresando podremos comprobar que la información del plan se modifica. Con ello podremos llevar a cabo “tuning” de consultas pesadas viendo mientras se ejecuta, donde se invierte más tiempo. Al finalizar la ejecución, acaba mostrando “100% done” sobre cada operador en el lugar que, en el plan de ejecución tradicional, ocupa el porcentaje que representa cada actividad sobre el total de la consulta.

SQL-server-2016-2

Otra de las nuevas características es la llamada “Query Store”, un repositorio en el que (una vez habilitado) podremos ver las diferentes ejecuciones de una misma Consulta para poder comparar sus distintos planes de ejecución y ver cuándo y por qué han cambiado.

Más novedades SQL 2016: «Temporal tables» y «Row level security»

Pero, desde mi punto de vista, hay dos funcionalidades especialmente interesantes. Una de ellas es la de las llamadas Temporal tables, en las que se puede consultar los registros de una determinada tabla en un momento puntual en el tiempo o en una determinada horquilla de fechas. El procedimiento es sencillo, basta agregar dos campos de tipo datetime2 a la tabla (pueden permanecer ocultos a las consultas) e indicar que deseamos que la visibilidad de los registros se haga en base a dichos campos.

SQL-server-2016-3

El objetivo parece similar al de la funcionalidad de CDC (Change Data Capture) pero su uso es mucho más sencillo ya que solo requiere de 2 campos de tipo fecha.

Entre las novedades SQL 2016, otra funcionalidad interesante, aunque puede ocasionar más de un dolor de cabeza tanto a administradores como a desarrolladores, es la llamada Row level security. La idea, es la de poder definir una cláusula “Where” que determinará automáticamente qué filas son devueltas cuando un usuario concreto lanza una Consulta contra la tabla.

En este caso, el procedimiento no es tan sencillo como en las “Temporal Tables”, dado que es necesario definir una función de tipo “inline” que es llamada desde una Política de seguridad. Veamos un ejemplo:

Empezaremos creando los usuarios y una tabla de muestra con una columna que contiene el texto sobre el que especificaremos la condición en la que insertaremos algunos datos.

SQL-server-2016-4

A continuación, crearemos un esquema en el que alojaremos una función que devolverá valores 1 o NULL y determinará si la fila será o no visible en el contexto actual.

Finalmente, crearemos una política de seguridad que será la que invoque a la función anterior.

SQL-server-2016-5

De este modo, al ejecutar la consulta obtendremos los datos filtrados según el usuario que la ejecute.

SQL-server-2016-6

La operación es totalmente transparente para el llamador y creo que ahí radica el principal inconveniente y es que, hasta que nos acostumbremos a ella, puede costar encontrar porque una consulta no devuelve lo que (creemos) que debería.

Veremos con qué cambios sobre estas funcionalidades “previstas” nos sorprende Microsoft en cuanto la versión RTM está finalmente disponible. ¿Durante el último trimestre de 2015?


Xavier Saladié

Xavier Saladié es Lead Expert en SQL Server y Desarrollo en .NET en Netmind. Es instructor acreditado por Microsoft desde el año 2005 y de ITIL desde el año 2013. Dispone de las certificaciones ITIL Expert, MCSE Cloud Platform and Infrastructure, MCSE Data Platform, MCSE Business Intelligence, MCPD Windows Developer, MCPD Web Developer, MCITP Sharepoint Administrator, MS Microsoft Project 2016 y MCSA SQL Server. Dispone de más de 20 años de experiencia en formación y ha dirigido múltiples proyectos de consultoría y optimización para arquitecturas de soluciones para varias organizaciones.


Entradas relacionadas

Cursos relacionados
Nuestro sitio utiliza cookies para análisis. Si no estás seguro de ello, echa un vistazo a nuestra política de privacidad.