Hace pocos días que Microsoft ha lanzado al público la preview (CTP 2.0) de SQL Server. Estaba deseando desgranarla un poco así que ahí van las principales novedades:
El asistente ofrece dos tipos de instalación, yo me decanté por una completa que con todos los componentes opcionales (pero sin incluir Reporting Services ni Management Studio que siguen estando disponibles en descargas separadas) nos ocupará la temeridad de 14 GB de disco. La característica Polybase Query Service es responsable de 9 de ellos y eso que ni siquiera se incluyen sus prerequisitos en la instalación.
En contraste con el espacio ocupado en disco tras la instalación, la descarga de la versión de SSMS (18.0 preview 4) tiene un tamaño de sólo 450 MB (aproximadamente la mitad que la versión anterior).
Por si disponíamos de pocas intercalaciones en SQL Server 2017 (concretamente 3955 desde el Albanés hasta el Yakut siberiano) ahora disponemos de 5507. El incremento se debe a la inclusión de un sufijo adicional para las intercalaciones que soporta UTF8.
Las operaciones de reconstrucción de los índices en online, ahora pueden detenerse y reanudarse sin perder el trabajo parcialmente completado con las instrucciones:
ALTER INDEX ix_CustomerIDs ON [ContosoSales].[ConstosoTransactionData] PAUSE ALTER INDEX ix_CustomerIDs ON [ContosoSales].[ConstosoTransactionData] RESUME
Aunque de momento es necesario preveer la posibilidad al lanzar el rebuild:
ALTER INDEX [ix_CustomerID] ON [Sales].[Customer] REBUILD WITH (ONLINE = ON, RESUMABLE = ON, MAX_DURATION = 15 MINUTES);
Esta nueva funcionalidad parece especialmente interesante para, por ejemplo, ventanas de mantenimiento cortas o errores por espacio en disco insuficiente ya que incluso es posible truncar el transaction log antes de continuar.
Existe una nueva función de agregación llamada APPROX_COUNT_DISTINCT ideal para poder llevar a cabo recuentos estimados en tablas de varios millones de registros con un margen de error inferior al 2%.
En las pruebas que hice, en una tabla de 16 millones de registros con 1 millón de valores únicos pero sin claves de ningún tipo ni índices, los resultados fueron ligeramente peores de lo documentado (2,3% de error ya que obtuve 976974 valores únicos). Por otro lado, las diferencias en tiempo de ejecución fueron bastante notables, pasando de 1.374 segundos en un Count(Distinct(…))a 0.923 segundos en la nueva APPROX_COUNT_DISTINCT(…). Pese a ello, sorprendentemente, el plan de ejecución no mostraba diferencias entre ambas sentencias. Cabe comentar que esta nueva función de grupo se basa en las tradicionales estadísticas y que, por tanto, son visibles desde el Explorador de objetos.
Una de las características que más se agradecen es la inclusión en el plan de ejecución real (al menos de momento no aparece en el estimado) del tiempo necesario para la ejecución de cada una de las diferentes partes del mismo.
En relación con entornos de Sistemas Operativos híbridos, la nueva versión soporta replicación (como Publicador, suscriptor y distribuidor) de los nodos Linux. También han agregado integración con Transacciones Distribuidas aunque para ello hay que instalar separadamente el servicio MSDTC.
Los nodos Linux también pueden integrarse en soluciones basadas en Always On Availability Groups con contenedores Docker.
Estaremos pendientes de ver que nuevas funcionalidades agregan antes de presentar la versión final para la que, por cierto, aún no hay estimación de fechas.
De momento si te animas a probarlo, puedes registrarte para descargar la versión de Evaluación válida durante 180 días desde aquí pero te recomiendo que lleves a cabo la instalación en una máquina virtual ya que, esta CTP, no permite instalaciones side-by-side con versiones previas de SQL Server ni actualizaciones desde versiones anteriores, de hecho ni siquiera soporta desinstalaciones.