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…)

RESOURCE_SEMAPHORE y SQL Server 2014 SP2 / SQL Server 2016

RESOURCE_SEMAPHORE y SQL Server 2014 SP2 / SQL Server 2016

Al realizar optimizaciones de servidores uno de los análisis básicos que se realizan es el análisis de esperas (waitstats). Una de las esperas que nos puede traer más de cabeza para encontrar su origen es la espera RESOURCE_SEMAPHORE. En este post vamos a ver algunas situaciones que pueden causar este problema y también cómo con SQL Server 2014 SP2 y SQL Server 2016 podemos mucho más fácilmente identificar las operaciones que causan más contención.

(más…)

Rendimiento tempdb mejorado en SQL Server 2014

Rendimiento tempdb mejorado en SQL Server 2014

Desde tiempos inmemoriales, hay un dicho que dice: “Usa siempre que puedas tablas temporales porque esas tablas viven en RAM”. A veces lo he oido con variables de tabla, pero la “esencia” del dicho es que puedes mejorar el rendimiento de lógica de negocio en por ejemplo procedimientos almacenados, creando objetos “temporales”. Nada mas lejos de la realidad 🙂

(más…)

Particionado de tablas en SQL Server 2014

Particionado de tablas en SQL Server 2014

Tradicionalmente el particionado de datos no ha sido muy de mi agrado por las implicaciones de mantenimiento que se tenian asociadas. Tareas como reindexar, mover particiones entre tablas, actualizar estadísticas,…no eran tarea sencilla en entornos con carga 24×7 en el momento en el que particionabas una tabla. Ni que decir tiene que en SQL Server 2005 particionar llevaba aparejado un grave problema de rendimiento en el momento en que una query “tocaba” más de una partición… (más…)
Problema con Expresión CASE en Predicados WHERE: Análisis de un Plan de Ejecución raro y la importancia de conocer el motor de SQL Server

Problema con Expresión CASE en Predicados WHERE: Análisis de un Plan de Ejecución raro y la importancia de conocer el motor de SQL Server

Cuando damos clases de SQL Server un aspecto al que los clientes – y a veces alumnos – quitan importancia a la parte de interioridades del motor de SQL Server. En mi puesto, en muchas ocasiones debo convencer a decisores sobre la formación a impartir a sus empleados; con mucha frecuencia tratan de evitar aspectos que se consideran internos del producto y que pueden verse como “de junta de trócola” y “para frikis”. En SolidQ siempre queremos que se imparta ese contenido, pero hoy día donde el argumento de más ponderación es el coste del servicio, muchos clientes intentan evitar contenidos formativos a los que no se les vea “retorno inmediato”. No quiero hacer de esta publicación una crítica o análisis de la formación especializada en España, pero debo indicar que cuando estaba pensando en la motivación de este post, la asociación entre interioridades de SQL Server, conocimiento que “quizás te sirva a medio plazo” y la educación especializada me vino directamente a la cabeza. También es posible que sea un problema mío de no saber convencer al cliente de la importancia del contenido presupuestado(más…)
SQL Server 2014 utilizando archivos de datos (o log) como archivos blob en Containers de Windows Azure

SQL Server 2014 utilizando archivos de datos (o log) como archivos blob en Containers de Windows Azure

SQL Server 2014 trae la posibilidad de utilizar/crear archivos de datos directamente en Windows Azure. Para detalles oficiales de esta nueva características le recomiendo visitar la documentación del producto (SQL Server Data Files in Windows Azure).De esta forma se puede utilizar archivos de datos (o log) en Azure y la máquina que proporciona el servicio (capacidad de cálculo) en tu CPD/hosting. Esta configuración formaría parte de uno de los escenarios híbridos de despliegues de SQL Server 2014.

(más…)

Tablas temporales vs tablas in-memory

Tablas temporales vs tablas in-memory

Con la llegada de SQL Server 2014 y las tablas in-memory cabe preguntarse si podrán dichas tablas sustituir escenarios típicos donde se utilizan actualmente tablas temporales. En nuestra experiencia en consultoría vemos habitualmente como las tablas temporales se utilizan  como contenedores de resultados intermedios dentro de procesos más complejos. En estos casos se suele o bien crear la tabla temporal de forma explícita con un CREATE TABLE o bien se crea al vuelo mediante el uso de la estructura SELECT INTO. (más…)
Eficiencia de CPU en In-Memory Databases (Heckaton) y escalabilidad

Eficiencia de CPU en In-Memory Databases (Heckaton) y escalabilidad

Ante el próximo lanzamiento de SQL Server 2014 la mayoría hemos leído bastante sobre las nuevas tablas In-Memory (Heckaton). En base a los resultados quedaba claro que existían ventajas claras en dos escenarios principalmente:

  • Escenarios de alta concurrencia con muchas esperas por bloqueos/latches.
  • Escenarios donde se necesita aumentar el throughput, aunque no se sufriera de bloqueos/latches.

(más…)