Uso indices columnares en SQL2014, ¿me interesa migrar a SQL2016?

Uso indices columnares en SQL2014, ¿me interesa migrar a SQL2016?

SQL Server 2016 realmente es un cambio drástico para mejor en términos de rendimiento general, prueba de ello es que es la primera versión de SQL Server en la que Microsoft activamente evidencia que únicamente por migrar y gracias a los cambios del engine, hay un aumento de rendimiento generalizado. ¿Pero cuánto me puede afectar en mi carga diaria si utilizo un datawarehouse con SQL Server 2014 y hago uso de índices columnares? Realmente con SQL Server 2014 y los índices columnares ya ví una mejora brutal de rendimiento, ¿me merece la pena ir a SQL2016?

(más…)

Python en SQL Server 2017

Python en SQL Server 2017

Con la llegada de SQL Server 2017 (aka vNext) junto con el hype del data science Microsoft está “abriendo la puerta” a otros los lenguajes dentro de SQL Server. Si nos remontamos a la época anterior a SQL Server 2005 las opciones disponibles resultaban complejas (código C nativo) y potencialmente peligrosas al basarse en la carga de DLLs sin limitaciones, sin sandboxing, etc. Con la llegada de SQL Server 2005 se abrió la puerta al uso de .NET con la integración CLR que aportaba una mayor sencillez a la hora de programar y mayor seguridad. A día de hoy el uso de la integración con CLR sigue siendo una herramienta muy potente e infravalorada en muchos escenarios.
(más…)

Crear objetos temporales o no, esa es la cuestión

Crear objetos temporales o no, esa es la cuestión

Es relativamente habitual encontrarnos con cargas SQL que realizan un uso intensivo de objetos temporales. Esto normalmente no supone necesariamente un problema de rendimiento per se, pero debemos tener en cuenta que esta creación y destrucción de objetos no es gratuita. En este post vamos a analizar el rendimiento de distintas configuraciones orientadas a dicho escenario de uso de datos temporales. (más…)

Una historia de fragmentación, particionado e índices columnares

Una historia de fragmentación, particionado e índices columnares

Resulta bastante habitual encontrarnos en muchos clientes situaciones de mal uso de funcionalidades de SQL Server, especialmente cuando existe cierto “hype” alrededor de ellas. Sin embargo, algo que todo técnico/arquitecto debería evaluar siempre son los pros y contras de las decisiones que se toman así como realizar mediciones para asegurarse que no tenemos algún efecto indeseado imprevisto. Todos sabemos que, en las presentaciones de productos tecnológicos, cuando se exponen las nuevas características, etc. se “vende la moto” sin entrar en los detalles y casi nada en esta vida es gratis o está exento de contras. (más…)

Índices columnares vs PowerPivot vs SSAS Tabular

Índices columnares vs PowerPivot vs SSAS Tabular

En las últimas versiones de SQL Server y Office hemos visto cómo el motor vertipaq/xvelocity se ha incluido para distintas funcionalidades. Más concretamente hacen uso de este motor los índices columnares en el motor relacional, el modelo tabular de SSAS y PowerPivot dentro de Excel. Además, en algunos casos se combina con tecnología inmemory, como en el modelo tabular de SSAS. En este post vamos a verificar qué rendimiento podemos obtener, dado un mismo conjunto de datos, en un par de operaciones habituales. (más…)

Logs y auditoría en la nube con stretch tables en SQL Server 2016

Logs y auditoría en la nube con stretch tables en SQL Server 2016

Una de las nuevas funcionalidades que trae SQL Server 2016 es Stretch Databases. Esta funcionalidad lo que busca es poder tener bases de datos híbridas, donde parte de la información se encuentre on-premise y otra parte en la nube. Esta no es la única opción que Microsoft ofrece para tener este tipo de bases de datos híbridas, ya que desde SQL Server 2012 podemos tener ficheros y filegroups directamente en blobs en Azure. También tenemos la posibilidad de tener ficheros en rutas de red (UNC) que se encuentren en la nube (Azure File Storage). En definitiva, lo que normalmente buscamos con estas aproximaciones es poder utilizar el almacenamiento en la nube (económico e ilimitado) desde nuestras instancias on-premise.

(más…)

Rendimiento de funciones escalares (UDF) (1/2)

Rendimiento de funciones escalares (UDF) (1/2)

Las funciones de usuario (UDFs) son un recurso ampliamente utilizado por cualquier desarrollador hoy en día. Es lógico ya que nos ayudan a encapsular lógica, nos dan claridad de código y nos permiten ver nuestras consultas como en nuestro lenguaje de programación procedural favorito :). Lamentablemente no en pocas ocasiones esas inofensivas e inocuas funciones, mal utilizadas son los focos de problemas de rendimiento que lastran la escalabilidad de nuestro sistema. Dado que la aparición de SQL Server 2016 es mas o menos reciente y que en esta edición del motor disponemos ahora del recurso de “UDFs nativamente compiladas”…vamos a ver qué tal rinden este tipo de funciones. Para este primer post, vamos a centrarnos únicamente en funciones UDF sin acceso a datos.

(más…)