Published on

March 12, 2017

SQL Server 2016: Mejoras poco comunes pero útiles en T-SQL y el motor de SQL Server

SQL Server 2016 es la versión más avanzada de la Plataforma de Datos de Microsoft lanzada hasta ahora. Esta versión ofrece capacidades tremendas y características enormes que mejoran la productividad de sus usuarios, incluyendo desarrolladores de bases de datos, DBAs y desarrolladores de aplicaciones. En este artículo, exploraremos un par de las mejoras más útiles en T-SQL y el motor de SQL Server que no se utilizan comúnmente pero que pueden facilitar la vida del usuario y aumentar la productividad empresarial.

La función TRUNCATE TABLE más flexible

TRUNCATE TABLE es un comando que no es favorecido por los DBAs, especialmente cuando se trata de particiones. Sin embargo, en SQL Server 2016, TRUNCATE TABLE se puede utilizar fácilmente con particiones para eliminar datos de particiones específicas rápidamente. Veamos una pequeña demostración para entender cómo funciona esto:


-- Crear una tabla con particiones
CREATE TABLE MiTabla (
    ID INT,
    Nombre VARCHAR(50)
) ON MiEsquemaDeParticiones(ID)

-- Insertar datos en la tabla

-- Truncar una partición específica
TRUNCATE TABLE MiTabla WITH (PARTITIONS (1))

Esta nueva característica te permite eliminar datos de una sola partición o de múltiples particiones simultáneamente, lo que la convierte en una forma práctica de gestionar datos en tablas particionadas.

Nueva función de cadena para dividir

SQL Server 2016 introduce una nueva función de tabla llamada STRING_SPLIT, que simplifica la división de cadenas basada en un separador. Anteriormente, los DBAs y los desarrolladores tenían que escribir sus propias funciones de división de cadenas o utilizar funciones CLR. Con STRING_SPLIT, puedes dividir fácilmente una cadena en múltiples valores. Aquí tienes un ejemplo:


-- Dividir una cadena en múltiples valores
SELECT valor
FROM STRING_SPLIT('Manzana,Naranja,Plátano', ',')

Esta función se puede utilizar en varios escenarios, como buscar valores específicos en una tabla o realizar manipulaciones complejas de cadenas.

Funciones “Auto crecer un solo archivo o todos los archivos” a nivel de base de datos

En SQL Server 2016, gestionar archivos de datos en entornos grandes se vuelve más fácil con la introducción de las opciones AUTOGROW_SINGLE_FILE y AUTOGROW_ALL_FILES. Estas opciones te permiten controlar el comportamiento de crecimiento automático de archivos de datos individuales o de todos los archivos de datos en un grupo de archivos. Veamos cómo funciona:


-- Crear una base de datos con múltiples archivos de datos
CREATE DATABASE MiBaseDeDatos
ON 
(
    NAME = MiArchivoDeDatos1,
    FILENAME = 'C:\Datos\MiArchivoDeDatos1.ndf',
    SIZE = 3MB,
    FILEGROWTH = 1MB
),
(
    NAME = MiArchivoDeDatos2,
    FILENAME = 'C:\Datos\MiArchivoDeDatos2.ndf',
    SIZE = 3MB,
    FILEGROWTH = 1MB
),
(
    NAME = MiArchivoDeDatos3,
    FILENAME = 'C:\Datos\MiArchivoDeDatos3.ndf',
    SIZE = 3MB,
    FILEGROWTH = 1MB
),
(
    NAME = MiArchivoDeDatos4,
    FILENAME = 'C:\Datos\MiArchivoDeDatos4.ndf',
    SIZE = 3MB,
    FILEGROWTH = 1MB
)

-- Habilitar crecimiento automático para un solo archivo
ALTER DATABASE MiBaseDeDatos
MODIFY FILE
(
    NAME = MiArchivoDeDatos1,
    AUTOGROW_SINGLE_FILE
)

-- Habilitar crecimiento automático para todos los archivos
ALTER DATABASE MiBaseDeDatos
MODIFY FILE
(
    AUTOGROW_ALL_FILES
)

Esta característica te permite asegurarte de que todos los archivos de datos crezcan de manera equitativa, mejorando el rendimiento y simplificando la gestión en entornos de bases de datos grandes.

Controlar el uso de CPU para DBCC CHECKDB, CHECKTABLE y CHECKFILEGROUP

DBCC CHECKDB, CHECKTABLE y CHECKFILEGROUP son características esenciales para los administradores de bases de datos para verificar la integridad de las bases de datos. Sin embargo, ejecutar estos comandos en servidores de producción puede ser desafiante debido a las limitaciones de recursos. En SQL Server 2016, ahora puedes controlar el uso de CPU para estos comandos especificando la configuración MAXDOP. Aquí tienes un ejemplo:


-- Ejecutar DBCC CHECKDB con la configuración MAXDOP
DBCC CHECKDB ('WideWorldImporters') WITH MAXDOP = 1
DBCC CHECKDB ('WideWorldImporters') WITH MAXDOP = 0

Ajustando la configuración MAXDOP, puedes optimizar el comportamiento de ejecución de estos comandos según los requisitos de tu empresa, permitiendo una mejor asignación de recursos y un mejor rendimiento.

Estas son solo algunas de las muchas mejoras y características introducidas en SQL Server 2016. Al aprovechar estas mejoras poco comunes pero útiles en T-SQL y el motor de SQL Server, puedes mejorar la productividad, simplificar la gestión y optimizar el rendimiento en tu entorno de SQL Server.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.