¡Hola, chicos!
En este esperado post comentaré las novedades que podemos esperar de SQL Server 2019, que hace tiempo dejó de ser un DBMS (Database Management System) para convertirse en una auténtica plataforma de datos de Microsoft, uniendo bases de datos, BI, Machine Learning y Big Data/Analytics.
¿Quieres ver novedades sobre versiones anteriores?
- SQL Server 2016: lista de nuevas funciones y características
- SQL Server 2017 e Instancia administrada de Azure SQL
Novedades de SQL Server 2019
El vídeo institucional al inicio de este post ya cuenta con algunos aspectos destacados de SQL Server 2019 (que comentaré a continuación) y que nos muestra cómo Microsoft está atento al mercado de Big Data y también trae importantes mejoras a su plataforma de datos.
Transcripción de vídeo: SQL Server 2019 + Polybase + Spark + Big Data + HDFS
Ver contenidoCon SQL Server 2019, puede crear una única capa de datos virtuales a la que puede acceder casi cualquier aplicación. La virtualización de datos de Polybase maneja la complejidad de integrar todas sus fuentes y formatos de datos sin necesidad de replicarlos o moverlos. Puede simplificar la administración de datos utilizando SQL Server 2019 Big Data Clusters implementado en Kubernetes. Cada nodo de un Big Data Cluster incluye el motor relacional de SQL Server, almacenamiento HDFS y Spark, que le permite almacenar y administrar sus datos utilizando las herramientas que elija.
SQL Server 2019 facilita la creación de aplicaciones inteligentes con big data. Ahora puede ejecutar trabajos de Spark para analizar datos estructurados y no estructurados, entrenar modelos con datos desde cualquier lugar con SQL Server Machine Learning Services o Spark ML y consultar datos desde cualquier lugar mediante una rica experiencia de cuaderno integrada en Azure Data Studio. El flujo de datos no se está desacelerando, pero no tiene por qué hundir su negocio. Navega con SQL Server 2019 y acorta la distancia entre los datos y la acción.
Big Data + Análisis
Ver contenidoVea cómo podemos facilitar la eliminación de las barreras para obtener información sobre todos sus datos al proporcionar una vista de sus datos en toda la organización:
- Simplifique el análisis de big data para los usuarios de SQL Server. SQL Server 2019 facilita la gestión de entornos de big data. Viene con todo lo que necesita para crear un lago de datos, incluidos HDFS y Spark con tecnología de Microsoft y herramientas de análisis, todo profundamente integrado con SQL Server y totalmente respaldado por Microsoft. Ahora, puede ejecutar aplicaciones, análisis e inteligencia artificial en datos estructurados y no estructurados, utilizando consultas T-SQL familiares, o las personas familiarizadas con Spark pueden usar Python, R, Scala o Java para ejecutar tareas de Spark para la preparación o análisis de datos. el mismo cluster integrado.
- Ofrezca a los desarrolladores, analistas de datos e ingenieros de datos una fuente única para todos sus datos (estructurados y no estructurados) utilizando sus herramientas favoritas. Con SQL Server 2019, los científicos de datos pueden analizar fácilmente datos en SQL Server y HDFS a través de trabajos de Spark. Los analistas pueden realizar análisis avanzados de big data utilizando los servicios de aprendizaje automático de SQL Server: entrenar grandes conjuntos de datos en Hadoop y ponerlos en funcionamiento en SQL Server. Los científicos de datos pueden utilizar una nueva experiencia de notebook que se ejecuta en el motor de notebook Jupyter en una nueva extensión de Azure Data Studio para realizar de forma interactiva análisis de datos avanzados y compartir fácilmente el análisis con sus colegas.
- Rompe los silos de datos y proporciona una vista de todos tus datos mediante la virtualización de datos. A partir de SQL Server 2016, PolyBase le permitió ejecutar una consulta T-SQL dentro de SQL Server para extraer datos de su lago de datos y devolverlos en un formato estructurado, todo sin mover ni copiar los datos. Ahora, en SQL Server 2019, estamos ampliando este concepto de virtualización de datos a fuentes de datos adicionales, incluidas Oracle, Teradata, MongoDB, PostgreSQL y otras. Con el nuevo PolyBase, puede romper los silos de datos y combinar fácilmente datos de múltiples fuentes mediante la virtualización para evitar el tiempo, el esfuerzo, los riesgos de seguridad y los datos duplicados creados por el movimiento y la replicación de datos. Los nuevos “grupos de datos” y “grupos de datos” elásticamente escalables agilizan las consultas de datos virtualizados al almacenar en caché los datos y distribuir la ejecución de consultas entre muchas instancias de SQL Server.
Mejoras de rendimiento
Ver contenido- La familia de recursos Procesamiento inteligente de consultas se basa en las funciones de ajuste del rendimiento del procesamiento adaptable de consultas de SQL Server 2017, incluida la retroalimentación de concesión de memoria en el modo Fila, COUNT DISTINCT aproximado y el modo por lotes en el almacén de filas.
- EL soporte de memoria persistente se ha mejorado en esta versión con una nueva ruta de E/S optimizada disponible para interactuar con el almacén de memoria persistente.
- La infraestructura ligera de creación de perfiles de consultas ahora está habilitado de forma predeterminada para proporcionar estadísticas de operador por consulta en cualquier momento y lugar donde las necesite.
- Cambios en la estimación de filas al usar tablas de variables (compilación de variables de tabla diferida). Hasta SQL Server 2019, el optimizador de consultas SIEMPRE estimaba 1 fila devuelta cuando se usaban variables tipo tabla, generando muchas veces operadores incorrectos cuando se usaban grandes masas de datos en este tipo de objetos y teniendo un rendimiento muy pobre. Esto provocó que muchas personas usaran tablas temporales o la sugerencia OPCIÓN (RECOMPILAR) para evitar este tipo de comportamiento. En la versión 2019, el optimizador de consultas intentará estimar un número más cercano al real, lo que significa que los resultados que utilizan variables de tipo tabla son generalmente mejores que los resultados de versiones anteriores. Para obtener más información sobre esta nueva característica, consulte esta publicación de Brent Ozar
- Comentarios de concesión de memoria en modo de fila. SQL Server 2017 introdujo la retroalimentación de concesión de memoria en modo Fila, que es descrito en detalle aquí. Básicamente, para cualquier concesión de memoria relacionada con un plan que involucre operadores en modo por lotes, SQL Server evaluará la memoria utilizada por la consulta y la comparará con la memoria solicitada. Si la memoria solicitada es demasiado baja o demasiado alta, lo que provoca derrames o desperdicio de memoria, ajustará la concesión de memoria asociada con el plan de ejecución la próxima vez que se ejecute. Esto reducirá la subvención para permitir una mayor competencia o la aumentará para mejorar el rendimiento.
Ahora también obtenemos este comportamiento para consultas en modo fila, bajo el nivel de compatibilidad 150. Si se encuentra una consulta en un disco, la concesión de memoria aumenta para ejecuciones posteriores. Si la memoria real utilizada por la consulta es inferior a la mitad de la memoria concedida, las solicitudes de concesión posteriores serán menores. Brent Ozar entra en más detalles en su publicación sobre Concesiones de memoria adaptativa.
- Modo por lotes sobre almacén de filas – Desde SQL Server 2012, las consultas en tablas con índices de almacén de columnas se han beneficiado de mejoras de rendimiento en modo por lotes. Las mejoras se deben a que el procesador de consultas realiza un procesamiento por lotes en lugar de fila por fila. También surgen filas debido al mecanismo de dosificación y se pueden evitar los operadores de interruptores de paralelismo.
En el nivel de compatibilidad 150, SQL Server 2019 elegirá automáticamente el modo por lotes en ciertos casos, incluso cuando no haya un índice de almacén de columnas, que a menudo no se puede crear debido a diversas limitaciones técnicas y/o conceptuales, como la falta de compatibilidad con activadores.
- Nueva función de agregación APPROX_COUNT_DISTINCT – Esta nueva función de agregación está diseñada para escenarios de almacenamiento de datos y es equivalente a COUNT(DISTINCT()). En lugar de ejecutar costosas operaciones de clasificación discretas para determinar los recuentos reales, se basa en estadísticas para obtener algo relativamente preciso. Debería encontrar que el margen de error está dentro del 2 % del recuento exacto el 97 % de las veces, lo que generalmente es suficiente para análisis de alto nivel y los ahorros en el uso de memoria son bastante considerables.
Resultados de la prueba:
- Sugerencias de nivel de compatibilidad con ámbito de consulta – ¿Tiene una consulta específica que funcione mejor en un determinado nivel de compatibilidad que no sea el mismo que el de la base de datos actual? Ahora puede hacer esto con nuevas sugerencias de consulta, que admiten seis niveles de compatibilidad diferentes y cinco modelos de estimación de cardinalidad diferentes. A continuación se detallan los niveles de compatibilidad disponibles, la sintaxis de ejemplo y el modelo CE utilizado en cada caso. Puede ver cómo esto puede afectar las estimaciones, incluso para las vistas del catálogo del sistema:
Para ver todas las sugerencias disponibles, puede consultar el DMV sys.dm_exec_valid_use_hints.
- Estimaciones de compresión del índice del almacén de columnas – En las versiones actuales, el procedimiento sys.sp_estimate_data_compression_ Savings tiene una verificación del tipo de compresión (NINGUNO, FILA y PÁGINA). En SQL Server 2019, esta verificación se cambió para permitir la estimación de los índices del almacén de columnas.
Esta es una gran noticia, ya que le permite predecir el impacto de agregar un índice de almacén de columnas a una tabla que no lo tiene, o convertir una tabla o partición al formato de almacén de columnas más agresivo, sin tener que restaurar la tabla a otro sistema y aplicarla en la práctica para realizar este análisis.
- Nueva función para recuperar información de la página. – DBCC PAGE y DBCC IND se utilizan desde hace mucho tiempo para recopilar información sobre las páginas que componen una partición, índice o tabla. Pero son comandos no documentados ni compatibles y pueden resultar muy tediosos para automatizar soluciones a problemas que involucran más de un índice o página.
Llegó sys.dm_db_database_page_allocations, una función de administración dinámica que devuelve un conjunto que representa todas las páginas del objeto especificado. Aún no documentada, esta función presenta un problema de inserción de predicados que puede ser un problema real en tablas más grandes: incluso para obtener información sobre una sola página, necesita leer toda la estructura, lo que puede ser bastante prohibitivo.
SQL Server 2019 presenta otro DMF, sys.dm_db_page_info. Esto devuelve básicamente toda la información en una página, sin la sobrecarga de las asignaciones de DMF. Sin embargo, en las versiones actuales, ya debe conocer el número de página que está buscando para utilizar la función. Esto puede ser intencionado, ya que puede ser la única forma de garantizar el rendimiento. Por lo tanto, si intenta determinar todas las páginas en un índice o tabla, aún necesitará utilizar asignaciones DMF.
Seguridad avanzada: informática confidencial
Ver contenidoUn enclave es un área protegida de la memoria a la que se pueden delegar estos cálculos y filtrado (en Windows, esto utiliza seguridad basada en virtualización): los datos permanecen cifrados en el motor, pero se pueden cifrar o descifrar de forma segura dentro del enclave. Simplemente agregue la opción ENCLAVE_COMPUTATION a la clave maestra, lo que puede hacer en SSMS marcando la casilla de verificación "Permitir cálculos de enclave" al crear la clave maestra para una columna.
En SQL Server 2019, hay un nuevo comando para estos metadatos, ahora disponible en Azure SQL Database, llamado AGREGAR CLASIFICACIÓN DE SENSIBILIDAD. Esto le permite realizar el mismo tipo de asistente que SSMS, pero la información ya no se almacena como una propiedad extendida y cualquier acceso a estos datos se muestra automáticamente en las auditorías en una nueva columna XML llamada data_sensitivity_information. Contiene todo tipo de información a la que se accedió durante el evento auditado.
Disponibilidad de misión crítica: alto tiempo de actividad
Ver contenidoEjemplo de uso:
CREATE INDEX Idx01 ON dbo.Teste(Nome)
WITH (ONLINE = ON, RESUMABLE = ON, MAX_DURATION = 10 MINUTES);
Mejor experiencia de usuario para desarrolladores
Ver contenidoEn SQL Server 2019, hay nuevas intercalaciones para admitir de forma nativa el almacenamiento de datos UTF-8 en SQL Server. Por lo tanto, puede crear una columna char o varchar para almacenar correctamente datos UTF-8 utilizando nuevas intercalaciones con un sufijo _SC_UTF8, como Latin1_General_100_CI_AI_SC_UTF8. Esto puede ayudar a mejorar la compatibilidad con aplicaciones externas y otras plataformas y sistemas de bases de datos, sin pagar las penalizaciones de rendimiento y almacenamiento de nvarchar.
Mejoras multiplataforma
Ver contenidoCompatibilidad con SQL Server 2019 en Azure Data Studio
Ver contenidoCada vez más, estos usuarios desean utilizar las mismas herramientas para trabajar juntos sin problemas en las instalaciones y en la nube, utilizando datos relacionales y no estructurados, trabajando en cargas de trabajo OLTP, ETL, análisis y transmisión.
Azure Data Studio (anteriormente Estudio de operaciones SQL) ofrece una experiencia de edición moderna con IntelliSense ultrarrápido, fragmentos de código, integración de código fuente y una terminal integrada. Está diseñado pensando en el usuario de una plataforma de datos, lo que le permite generar gráficos e información a partir de consultas, un cuaderno integrado y paneles personalizables. Por lo tanto, Microsoft se ha estado enfocando en este perfil en Azure Data Studio, y manteniendo SQL Server Management Studio enfocado en el perfil de Administradores de Bases de Datos (DBA).
Actualmente, Azure Data Studio ofrece soporte integrado para SQL Server local y en la nube (Azure SQL Database), además de soporte (aún beta) para Instancia administrada de Azure y almacén de datos Azure SQL.
Azure Data Studio presenta hoy una nueva extensión de vista previa para agregar compatibilidad con algunas características de SQL Server 2019. La extensión proporciona conectividad y herramientas para clústeres de big data de SQL Server, incluida una vista previa de la función de anotaciones en el conjunto de herramientas de SQL Server y el nuevo asistente "PolyBase Create External Table", que facilita el acceso a datos desde instancias remotas de SQL Server y Oracle.
Para descargar Azure Data Studio, haga clic en este enlace aquí.
Nuevos mensajes en sys.messages
Ver contenidoEntre la extensa lista de cambios y novedades en los mensajes, destaco algunos de ellos:
- 3911: el almacén de versiones persistentes está lleno. No se pudieron agregar nuevas versiones. Es posible que se revierta una transacción que necesite acceder al almacén de versiones. Consulte BOL sobre cómo aumentar el tamaño máximo de la base de datos.
- 10661: la operación de actualización para todas las vistas de instantáneas falló porque había otra operación de actualización (ya sea para todas o para una sola vista de instantáneas) en progreso.
- 9113 – Advertencia: la creación y actualización de estadísticas forzará un ESCANEO COMPLETO en esta versión de SQL Server. Si el porcentaje de muestra persiste, persisted_sample_percent será 100.
- 12112 – Advertencia: La instrucción %ls se está forzando a ejecutarse CON (%S_MSG = ON) porque la configuración del alcance de la base de datos ELEVATE_%S_MSG está establecida en FAIL_UNSUPPORTED. La declaración puede fallar. Consulte el registro de errores de SQL Server para obtener más información.
- 5871: no se puede configurar el tipo de enclave de cifrado de columna en Modo seguro virtual (VSM): el sistema operativo no es compatible con VSM.
- 2628: los datos de cadena o binarios se truncarían en la tabla '%.*ls', columna '%.*ls'. Valor truncado: '%.*ls'.
¡Sí, lo viste bien! ¿Quién nunca ha perdido valiosos minutos intentando identificar qué columna y qué valor excedieron el límite de un campo varchar? En SQL Server 2019 esto ya no debería suceder (Nota: hice una prueba y todavía sucede... esperemos la versión final).
Nuevos objetos del sistema y DMV
Ver contenidoNuevos procedimientos almacenados
- sys.sp_add_feature_restricción
- sys.sp_autoindex_cancel_dta
- sys.sp_autoindex_invoke_dta
- sys.sp_cloud_update_blob_tier
- sys.sp_configure_automatic_tuning
- sys.sp_diagnostic_showplan_log_dbid
- sys.sp_drop_feature_restricción
- sys.sp_execute_remote
- sys.sp_force_slog_truncación
- sys.sp_internal_alter_nt_job_limits
- sys.sp_rbpex_exec_cmd
- sys.sp_set_distributed_query_context
- sys.sp_set_session_resource_group
- sys.sp_showinitialmemo_xml
- sys.sp_xa_commit
- sys.sp_xa_end
- sys.sp_xa_forget
- sys.sp_xa_forget_ex
- sys.sp_xa_init
- sys.sp_xa_init_ex
- sys.sp_xa_prepare
- sys.sp_xa_prepare_ex
- sys.sp_xa_recover
- sys.sp_xa_rollback
- sys.sp_xa_rollback_ex
- sys.sp_xa_start
- sys.xp_copy_file
- sys.xp_copy_files
- sys.xp_delete_files
- sys.sp_change_repl_serverport
- sys.sp_getdistributorplatform
- sys.sp_MSget_server_portinfo
- sys.sp_MSset_repl_serveroptions
- sys.sp_persistent_version_cleanup
- sys.sp_persistent_version_store
- sys.sp_sqljdbc_xa_install
- sys.sp_sqljdbc_xa_uninstall
Nuevas tablas/vistas
- sys.dm_column_encryption_enclave
- sys.dm_column_encryption_enclave_operación_stats
- sys.dm_db_missing_index_group_stats_query
- sys.dm_distributed_exchange_stats
- sys.dm_hadr_ag_threads
- sys.dm_hadr_db_threads
- sys.dm_os_job_object
- sys.dm_tran_aborted_transactions
- sys.edge_constraint_clauses
- sys.edge_constraints
- sys.external_libraries_installed
- sys.sensitivity_classifications
- sys._trusted_assemblies
- sys.persistent_version_store
- sys.persistent_version_store_long_term
- sys.tbl_server_resource_stats
Nuevas funciones
- sys.dm_db_page_info
- sys.fn_dbslog
- sys.fn_getproviderstring
Aquí tenéis otro vídeo con un resumen de los recursos presentados:
¿Y ahí? ¿Te gustó todo lo que viste?
hacer el Descarga de SQL Server 2019 (vNext CTP 2.0 – Vista previa) y comience a probar todas las nuevas funciones.
Esta presentación de diapositivas requiere JavaScript.
Un abrazo y ¡hasta la próxima!
Referencias:
https://www.mssqltips.com/sqlservertip/5710/whats-new-in-the-first-public-ctp-of-sql-server-2019/
https://cloudblogs.microsoft.com/sqlserver/2018/09/24/sql-server-2019-preview-combines-sql-server-and-apache-spark-to-create-a-unified-data-platform/
https://www.brentozar.com/archive/category/sql-server/sql-server-2019/
Dirceu Resende
Arquitecto de Bases de Datos y BI · Microsoft MVP · MCSE, MCSA, MCT, MTA, MCP.



Comentários (0)
Carregando comentários…