Usando Merge con Select

Usando Merge con una consulta como origen

La instrucción Merge realiza instrucciones de inserción de registros, actualización o eliminación de registros en una tabla de destino en la misma base de datos o en otra base de datos según los resultados de combinar los registros con una tabla de origen, esta tabla origen puede ser una consulta Select.

Seguir leyendo

ColumnStore index en SQL Server

ColumnStore index en SQL Server

La importancia de los índices en las consultas radica en que estos van a permitir optimizar la obtención del conjunto de resultados.
Los índices son estructuras que ordenan los registros de una tabla o vista por uno o más campos de manera ascendente o descendente.
Los índices en una tabla o vista guardan todas las columnas del registro, si es necesario buscar un campo de un registro específico lo que hace la consulta es leer toda la fila y luego extraer el dato que se requiere. Los Column Store Index almacenan los datos en columnas, esto mejora la compresión de datos, reduce considerablemente los datos de E/S ya que se leerán solamente las columnas necesarias y mejora el desempeño. En este artículo se va a explicar el uso de los Column Store index.

Seguir leyendo

Grouping Sets en SQL Server

Uso de Grouping Sets en SQL Server

Los agrupamiento en SQL Server permiten mostrar un conjunto de resultados donde una o mas columnas que se muestran es el resultado del uso de alguna de las funciones de agregado que calculan suma, promedio,
máximo, mínimo, etc.
Si se desea mostrar mas de un agrupamiento en el mismo conjunto de resultado se deberá usar los Grouping Sets, estos son similares al uso del operador Union All. En este artículo se desea explicar como se usa la opción
Grouping Sets para mostrar múltiples resultados de agrupamientos en la misma instrucción. Adicionalmente se muestra como se usa la función Grouping.

Seguir leyendo

Pivot y procedimientos almacenados

Usando Pivot y Procedimientos almacenados

Las operaciones con Pivot nos permitirá convertir los resultados de una consulta que se presentan en filas y mostrarlos en columnas. Pivot utiliza las funciones de agregado para presentar los datos en columnas. En este
artículo se presentan varios ejercicios usando el operador Pivot usando procedimientos almacenados para hacer las consultas dinámicas.

Seguir leyendo

Reconstruir índices en SQL Server

Reconstruir los índices en SQL Server

Índices en SQL Server

Un índice de SQL Server es una estructura en disco o en memoria asociada con una tabla o vista que acelera la recuperación de filas de la tabla o vista. Un índice contiene claves generadas a partir de una o varias columnas de la tabla o la vista.
El diseño eficaz de los índices tiene gran importancia para conseguir un buen rendimiento de una base de datos y una aplicación, es por ese motivo que no solamente es muy útil crearlos sino cada cierto tiempo reconstruirlos, este tiempo para a depender de la cantidad de información que cambia en el indice en la tabla o vista.

Seguir leyendo

Función String_split SQL Server

Usando la Función String_split

Microsoft SQL Server en la versión 2017 ha incluído algunas funciones interesantes para el manejo de cadenas de texto, una de ellas es la función String_agg, la que permitía convertir un conjunto de valores de cadena a una cadena separada por un caracter. En este artículo se explica como se usa la función String_Split que hace lo inverso de la función String_agg.
Ver Función String_agg

Seguir leyendo

Cross Apply y Outer Apply SQL Server

Uso de Cross Apply y Outer Apply

La cláusula CROSS APPLY de la instrucción select se comporta de manera similar a una subconsulta correlacionada, con la diferencia que nos permite usar la cláusula ORDER BY dentro de la subconsulta.
Esto es muy útil cuando se requiere registros superiores o inferiores de una subconsulta para usarlo en una subconsulta externa.
La subconsulta de la cláusula CROSS APPLY se puede reemplazar por una función definida por el usuario que reporta una tabla.

Seguir leyendo

Over Partition By en SQL Server

Usando la cláusula OVER en SQL Server

La cláusula Over en una consulta determina la partición y el orden de un conjunto de filas antes de que se aplique la función de Windows asociada, es decir, la cláusula OVER define un conjunto de filas especificado por el usuario dentro de un conjunto de resultados de la consulta. Luego, una función de Windows calcula un valor para cada fila de la consulta.
Puede usar la cláusula OVER con funciones para calcular valores agregados, como promedios móviles, agregados acumulados, totales acumulados o un N superior por resultados de grupo.

Seguir leyendo

Tamaño de tablas en SQL Server

Tamaño de tablas SQL Server

En una base de datos en SQL Server la información es almacenada en las tablas, estas pueden llegar a convertirse en tablas grandes y es necesario considerar una partición horizontal en tablas que son grandes. (Ver partición Horizontal de tablas)

Seguir leyendo

Insertar varios registros a la vez SQL Server

Insertar varios registros a la vez SQL Server

En algunas aplicaciones es necesario insertar varios registros en una misma instrucción, puede ser por ejemplo el detalle de una pedido, el detalle de un documento de venta, los integrantes de un grupo de trabajo, etc.
En este artículo se explica como insertar varios registros a la vez usando un procedimiento almacenado y un tipo de dato definido por el usuario con formato tipo tabla.

Seguir leyendo