martes, 16 de junio de 2020

Cambio de blog y nuevo canal de youtube!

He empezado a cambiar de sitio para el blog. De momento puedes entrar aqui para ver su nuevo aspecto, que iré mejorando poco a poco

https://enriquecatala.github.io/

Tengo nuevo canal de Youtube dedicado a la ingenieria de datos:

https://www.youtube.com/enriquecatala

miércoles, 2 de agosto de 2017

¿Merecen la pena los indices columnares en SQL Server 2016?

Resulta que la implementación de los operadores en SQL Server 2014 y 2012 respecto a los índices columnares no era completa y que el generador de planes de ejecución no tenia algunas optimizaciones aplicadas al respecto además. Vamos, que en SQL Server 2014, tus tablas que tienes perfectamente indexadas con índice columnar, van a medio gas, a pesar de lo rápido que creas que van tus queries.

Continua leyendo…

jueves, 13 de julio de 2017

Data Migration Asisstant Helper

He publicado en GitHub el repositorio que contiene un helper para analizar el resultado de la herramienta Data Migration Asisstant. He recopilado y mejorado la versión que liberó Microsoft el pasado Marzo para procesar resultados agregados de múltiples servidores con la herramienta de analisis de código estático de Microsoft.

Lo puedes encontrar aqui: https://github.com/enriquecatala/DataMigrationAssistantHelper y en la versión actual es compatible con la version 3.1 (la última en el momento de escribir este artículo)

Continua leyendo…

Slides de mis sesiones en el #SQSummit2017

Pongo a disposición del que quiera, como siempre, las slides de mis sesiones en el pasado #SQSummit2017.

Si tienes alguna inquietud ya sabes que puedes consultar conmigo en enrique@enriquecatala.com o en ecatala@solidq.com

Aplicando R al análisis de rendimiento de un servidor

Datamining avanzado de performance monitor con R


Planes de ejecución 3.0 sql 2016 y 2017

Novedades en el generador de planes de ejecución que aparecen con SQL Server


Técnicas avanzadas para resolver tus problemas de sql server

Aprender técnicas de resolución de problemas que nos ayudarán a ser efectivos a la hora de resolver futuros problemas.

Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el rendimiento de tus bases de datos

Detectar e implementar correctamente capas de acceso a datos .NET que escalen a las capacidades HW de la máquina


Paralelismo en sql server

En esta sesión daremos una vuelta completa al paralelismo en SQL Server, hablaremos de parámetros de configuración, planes de ejecución paralelos, operadores paralelos y mucho más. Además veremos cómo monitorizar y detectar problemas de paralelismo y las posibles soluciones

lunes, 19 de septiembre de 2016

Ponente en Microsoft Tech Summit

He tenido el honor de ser elegido como ponente para el Microsoft Tech Summit que se va a celebrar el próximo 6 de Octubre 2016 en el palacio municipal de congresos de Madrid.

En concreto impartiré: Data warehouse como servicio en Azure (SQLDW)

“En lugar de aprovisionar grandes recursos para tu datawarehouse, Azure ofrece una versión especial de SQL Server como DataWarehouse. Si está familiarizado con el appliance APS (a partir de 1Millon de dolares), SQLDW en Azure viene a ser su versión como servicio (mucho mas versatil y asequible). Creas tu datawarehouse desde el portal de Azure y ya puedes empezar a cargar datos y explotarlos. En esta sesión veremos cómo habilitar el servicio y cómo empezar a explotar SQLDW como tu DataWarehouse en la nube.”

Visto el lugar de celebración, los 8 tracks de que dispone y teniendo de feedback el pasado #dotNetConference2016…deberías comentarle a tu jefe que es una oportunidad única para aprender cosas nuevas o reforzarte en tu tecnología favorita. Yo desde luego tengo un montón de sesiones a las que quiero asistir que me parecen superinteresantes.

Por cierto, acaban de publicar un primer borrador de la agenda!

agenda *Parece que tengo el slot de las 15:45 del track 6

lunes, 12 de septiembre de 2016

Ponente en el SQL Saturday #568, Madrid 2016

SQLSaturday Estoy encantado de compartir que he sido aceptado como ponente en el próximo evento SQL Saturday #568 que se celebrará en Madrid el próximo día 24 de Septiembre de 2016.
SQLSaturday es un evento gratuito para profesionales y futuros profesionales relacionados con SQL Server, Big Data, Business Intelligence e IoT.
Se han celebrado más de 500 eventos SQLSaturday alrededor de todo el mundo y ésta va a ser la tercera edición en España, donde el  año pasado, más de 300 asistentes disfrutaron en Madrid de su segunda edición.
Dentro de la multitud de temas que se van a tratar en las sesiones, podremos encontrar:
  • SQL Server 2016
  • Big Data 
  • Power BI
  • Streaming de datos
  • Arquitecturas IoT
  • Machine Learning
  • Motor relacional (optimizacion, bloqueos, índices)
  • Alta disponibilidad y Cloud
  • Integration Services, Analysis Services, Reporting
  • Y muchos más!
24 sesiones, en inglés o castellano, impartidas por los mejores ponentes nacionales e internacionales: MVPs, MCMs, Mentores, Ingenieros de Microsoft y técnicos especialistas de renombre. Ponentes de la talla de Eladio Rincón, Rubén Pertusa, Luis Ruiz Pavón, Miguel Egea, Pablo Doval, Alberto Diaz,Kennet Nielsen…vamos, que tengo ganas de poderme reunir con ellos y aprender un montón!
Cr11IFCXYAQ5Z6_
En esta edición estaré, además de formar parte del staff…impartiendo las siguientes sesiones:

Workshop de planes de ejecución

Aprender a leer planes de ejecución de SQL Server te ayudará a entender el algoritmo de recuperación de datos que implementa SQL Server para resolver tu consulta y con ello a entender si es posible mejorarlo de alguna manera. Este año además trataremos algunos cambios en SQL Server 2016.
El workshop durará 6 horas con descansos incluidos. Comienza desde las 9:30 hasta las 15:30.

IMPORTANTE: Registro https://www.eventbrite.com/e/sqlsaturday-madrid-workshop-como-leer-planes-de-ejecucion-en-sql-server-de-0-a-100-edicion-2016-tickets-26821206952


Planes de ejecución 2016

El año pasado hice una introducción a cómo leer planes de ejecución. En esta edición vamos a empezar con un nivel un poco mas alto y a ver casos y problemáticas mas complejas del día a dia.
Para más información: http://www.sqlsaturday.com/568/Sessions/Details.aspx?sid=53661

QueryStore en SQL Server 2016

Tanto en SQL Server 2016 como en SQLAzure (PaSS), Microsoft nos proporciona nuevas herramientas para que el comportamiento de SQL Server sea más predecible. Con estas nuevas herramientas (QueryStore) como administrador de BBDD tienes nuevas posibilidades para analizar el rendimiento de consultas concretas, de patrones de consultas, y si suceden cambios importantes en su comportamiento. Venga a esta sesión para entender QueryStore y sacarle más partido a su servidor SQL Server.
Para más información: http://www.sqlsaturday.com/568/Sessions/Details.aspx?sid=53660
Aquí te dejo la agenda, para que te des cuenta del elenco de megacracks que vienen este año: http://www.sqlsaturday.com/568/Sessions/Schedule.aspx





Evento: Planifica la migración de tus BBDD a SQL Server 2016

En este seminario te mostraré cómo planificamos en SolidQ la migración a SQL Server 2016 para que te pongas manos a la obra. Además conocerás las diferentes fases de un proyecto de mirgación: Análisis previo e incompatibilidades, eliminación de posibles incompatibilidades, pruebas de migración y la migración…

Cuándo?

Lugar

29 de Septiembre
de 10:00 a 13:30
Oficinas Microsoft Ibérica

Beneficios de asistir al evento

  • Ponte al día. Conoce las últimas novedades tecnológicas en una mañana y la opinión de otros expertos sobre ellas
  • Soluciona tus problemas.  Compártelos con nuestros mentores y llévate ideas y soluciones para ellos
  • Detectarás problemas y soluciones que aún no se te han planteado o no has identificado como tales

Solo hay 13 plazas abiertas por lo que si no quieres quedarte sin ella…regístrate aqui.

martes, 2 de agosto de 2016

Workshop planes de ejecución en el #SQLSatMad2016

Tengo el honor de impartir una de las dos pre-conferencias que se hace este año en el SQL Saturday Madrid 2016: “Como leer planes de ejecución en SQL Server”. Se trata de una formación con bastante demanda y prácticamente regalada al precio que la hacemos. No lo dudes y apúntate si quieres aprender a leer planes de ejecución por fin con SQL Server!

Link para la PreCon https://www.eventbrite.com/e/sqlsaturday-madrid-workshop-como-leer-planes-de-ejecucion-en-sql-server-de-0-a-100-edicion-2016-tickets-26821206952 

Aprovecho además para recordarte que el próximo 24 de septiembre se celebra otro año más el SQL Saturday Madrid,  el evento nacional mas importante de SQL Server y que por supuesto no te puedes perder. Alli habrán ponentes internacionales de reconocido prestigio, Microsoft Data Platform MVPs nacionales e internacionales y un montón de gente dispuesta a compartir conocimiento juntos. ¿Estarás tu tambien con nosotros?

SQLSAT

Rendimiento de las funciones UDF en SQL Server 2016 (1/2)

En SQL Server 2016 podemos programar funciones escalares de usuario de 3 formas diferentes:

A pesar de que tenemos varias formas de programar funciones, su uso principalmente está concentrado en la de tipo T-SQL, cosa que a mas de uno le va dar un poco de dolor de cabeza cuando lea esto Smile

udfs-dummycalc

Continua leyendo…

jueves, 28 de julio de 2016

Nuevo proyecto: In-Memory OLTP Utils

He liberado bajo licenciamiento MIT una serie de funciones para tratamiento de texto que se pueden usar en objetos compilados nativos con el motor In-Memory OLTP que trae SQL Server 2016. Todas tienen su equivalente en el motor OnDisk pero supongo que por razónes de timing no se han liberado en su momento.

Te animo a que añadas mas funcionalidades que puedas creer convenientes aquí: https://github.com/enriquecatala/InMemoryOLTPUtils

miércoles, 6 de julio de 2016

Disponibles las slides de mis últimas charlas!

He dejado colgadas en mi canal de SlideShare, las slides de mis sesiones en el pasado SolidQ Summit Madrid 2016. Que las disfruteis!

Query Store en SQL Server 2016

Tanto en SQL Server 2016 como en SQLAzure (PaSS), Microsoft nos proporciona nuevas herramientas para que el comportamiento de SQL Server sea más predecible. Con estas nuevas herramientas (QueryStore) como administrador de BBDD tienes nuevas posibilidades para analizar el rendimiento de consultas concretas, de patrones de consultas, y si suceden cambios importantes en su comportamiento. Venga a esta sesión para entender QueryStore y sacarle más partido a su servidor SQL Server.

Nivel: 400

Planes de ejecución 1

En esta sesión conoceremos los operadores básicos de los planes de ejecución: nested loop, merge join, hash join, aggregates) y speeling. Conocerá también cómo interpretar un plan de ejecución y cómo leerlo.

Nivel 300

Planes de ejecución 2

Esta sesión es continuación de “planes de ejecución 1″. En esta sesión no se tocará ninguna cuestión explicada en la ssión anterior. El objetivo de esta sesión es explicar el funcionamiento de operadores avanzados como los pipes, indices temporales, hash avanzados, etc

Nivel 400

Migración a SQL Server 2016

La adopción de SQL Server 2016 debe ser “tranquila” y sin problemas. En esta sesión le guiaremos en cómo hacer dicha migración/actualización y cuáles son los pasos que tomamos en SolidQ en estos proyectos de migración. Trataremos tanto migraciones side-by-side como migraciones in-place.

Nivel: 300

Datawarehouse como servicio en Azure (SQLDW)

En lugar de aprovisionar grandes recursos para tu DW, Azure ofrece una versión especial de SQL Server como DataWarehouse. Si está familiarizado con el appliance APS, SQLDW en Azure viene a ser su versión como servicio. Usted crea su DW desde el portal de Azure y ya puede empezar a cargar datos y explotarlos. En esta sesión veremos cómo habilitar el servicio y cómo empezar a explotar SQLDW como tu DW en la nube.

Nivel: 200

lunes, 20 de junio de 2016

Mejoras en AlwaysON con SQL Server 2016

Si en tu entorno dispones de algún despliegue con AlwaysON y piensas migrar a SQL Server 2016 debes saber que hay un gran numero de mejoras introducidas en esta edición de SQL Server de cara a mejorar el rendimiento y el nº de implantaciones.

Mejoras como mejorar 4x-5x el rendimiento del transporte de operaciones entre nodos secundarios, mejor uso del HW para compresion-descompresion de mensajes, soporte para DTC,…

Seguir leyendo…

martes, 3 de mayo de 2016

Auditoria de operaciones personalizada con Temporal Tables

Con SQL Server 2016 o Azure SQL Databases tenemos la nueva característica Temporal Tables, con la que podemos hacer un montón de cosas. Pese a que está destinada a mantener de forma muy facil atributos lentamente cambiantes o SCD type 2 para datawarehouse, en este caso propongo una utilización bastante interesante para implementar auditoria de operaciones personalizada, con poco esfuerzo de desarrollo.

La idea es que con esta solución podamos hacer una query a nuestra tabla para saber la vida que ha tenido una determinada Fila. Tras esto, la idea por tanto es obtener una tupla como la que veis:

Tabla resultados auditoria

  • El día 1 de Mayo Pepe, insertó el valor “Hola”
  • El día 2 de Mayo Pepe actualizó su valor a “Adiós”
  • El día 3 de Mayo, Juan atualizó su valor a “Textonuevo”
  • El día 4 de Mayo, Andres borró la fila

Continua leyendo aqui…

sábado, 27 de febrero de 2016

Resumen de la #dotNetSpain2016

El pasado 24 de Febrero tuve el placer y el honor de forma parte de los speakers del evento mas grande de .NET que se celebra en españa. Nada mas y nada menos que 1700 asistentes presenciales y 5000 siguiendolo en directo por streaming hicieron que fuera uno de los eventos de desarrollo mas importantes de nuestro pais este año. Incluso estuvo ni mas ni menos que el mismismo Satya Nadella (CEO de Microsoft).

Algunas fotos del evento para hacernos una idea del éxito de asistencia que tuvo:

1 Mainstage
WP_20160224_12_39_08_Rich_LI WP_20160224_09_08_25_Rich_LI
WP_20160224_09_43_13_Rich_LI nadella

En el evento lo pasé genial, encontrándome a viejos amigos con los que me pude reir de lo lindo y cómo no conociendo un monton de gente con la que tengo en común el tremendo interes por la innovación, la tecnologia y las ganas de aprender.

Cada uno se hacia su propio evento ya que teniendo 8 tracks llenos de rockstars de cada area, la tarea es dificil. Aun así, yo asistí a las siguientes sesiones, todas ellas una maravilla:

  1. MvvmCross, desarrollo multiplataforma mediante patrones con Xamarin y C#
  2. Tips and Tricks para el desarrollo de soluciones IoT en .Net
  3. Entity Framework Core 1.0
  4. Mejores Prácticas de conectividad, Seguridad y uso de CLR en SQL Server: Lecciones Aprendidas desde las trinchera

*Tanto estas como el resto de sesiones están publicadas aqui: https://github.com/esmsdn/dotNetSpain2016/wiki/Recursos

Además de como digo de contar con nada mas y nada menos que el CEO de Microsoft, tuvimos otras sorpresas interesantes como que se conectó en directo con Scott Hanselman, Scott Hunter y David Carmona, los cuáles nos contaron en directo que Microsoft había alcanzado un acuerdo con Xamarin para iniciar el proceso de compra y resolvieron las preguntas de los asistentes. Con esta gran noticia se cerraba esta edición de .NET Conference 2016 Spain.

Como digo, tuve el honor de impartir una sesión titulada “Como hacer tuning a capas de acceso a datos en .NET” cuyo briefing decía:

"En esta sesión hablaremos de tecnicas de profiling avanzado de aplicaciones .NET. Usaremos interceptores, compilaremos nuestra modificación de EntityFramework, usaremos ANTS profiler, analizaremos con PowerPivot, usaremos SQL Server Profiler, revisaremos cómo trabajamos nativamente con los datos ya capturados en la capa DAL de nuestra arquitectura,...Preparate para optimizar de verdad! "

La verdad que el escenario era brutal. Ese pequeñajo que sale a la derecha con la mano levantada soy yo Smile (gracias a mi amigo Sergio Sisternes @sesispla por la foto)

Presentando

La verdad que el feedback que me dieron los asistentes fué bastante bueno y tras la sesión nos quedamos un buen rato discutiendo sobre diversos temas relacionados con la sesión…tanto que empezó la siguiente sesión y tuvimos que cortar Surprised smile. De hecho mucha gente se ha interesado bastante por el material y me ha expresado su interes en colaborar en futuros proyectos con nosotros (SolidQ) a raiz de esta sesión, por lo que estoy bastante contento ya que es mejor indicativo de que realmente gustó Smile

Y por último, solo me falta dirigirte a las slides de mi sesión y al código fuente de la app de ejemplo que hice para la ocasión:

El código fuente de la app de ejemplo que hice: https://github.com/enriquecatala/ProfilingDotNetExample

Y las slides de la sesión:

Espero que el año que viene, si puedo mandar sesión interesante me la acepten como este año y lo disfrute tanto como este año lo he disfrutado.

Gracias a todo el equipo de @msdev_es y en especial a Jose Bonnin por hacerlo posible

jueves, 28 de enero de 2016

Mejora el rendimiento de like con SQLCLR

SQLCLR es una de las características que mas me gustan de SQL Server. Aunque puede ser un desastre utilizarla si no se tienen los conceptos claros, se pueden hacer cosas muy interesantes como esta que vamos a ver ahora.

La idea es optimizar allí donde SQLCLR es mas eficiente y esto es, optimizando operaciones de búsqueda de texto, sobre columnas varchar(max) y nvarchar(max)

Sigue leyendo…

miércoles, 28 de octubre de 2015

Pre-conferencia planes de ejecución en SQL Server #SQLSatMadrid

En el próximo #SqlSatMadrid que se celebrará el próximo día 20 de Noviembre en las instalaciones de Microsoft Ibérica, voy a impartir una pre conferencia de 6h (con descansos) dedicada exclusivamente a cómo leer planes de ejecución con SQL Server. A diferencia del resto de actividades del evento, esta va a ser la única actividad no gratuita y además se realizará el Viernes, para que su asistencia no te impida asistir al resto de sesiones que habrán en el #SQLSatMadrid

Para apuntarte, puedes hacerlo a través del siguiente link de registro:

https://www.eventbrite.com/e/entradas-sqlsaturday-madrid-workshop-como-leer-planes-de-ejecucion-en-sql-server-19204087944

¿Por qué puede interesarte asistir?

Como sabrás, T-SQL es un lenguaje de especificación, por lo que escribiendo una query lo que hacemos es pedir qué es lo que necesitamos, pero no el algoritmo que se debe utilizar para conseguirlo. Aprender a leer planes de ejecución de SQL Server te ayudará a entender el algoritmo de recuperación de datos que implementa SQL Server para resolver tu consulta y con ello a entender si es posible mejorarlo de alguna manera.

El workshop durará 6 horas con descansos incluidos. Comienza desde las 9:30 hasta las 15:30.

 

Prerrequisitos

- Más de 1 año de experiencia con SQL Server
- Conocer el modelo relacional
- Conocimiento del lenguaje T-SQL
- Necesidad de comprender por qué algunas consultas van lentas

 

Temario

1. Estadísticas

  • Qué son, su importancia y cómo leerlas
  • Conceptos clave
    • Selectividad, densidad, cardinalidad

2. Operadores

  • Table Scan
  • NonClustered Index Scan
  • Clustered Index Scan
  • Index Seek
  • Merge Interval
  • Key Lookup
  • Rid Lookup
  • Spools Eager/Lazy Spool
  • Row Count Spool
  • Table Spool
  • Nonclustered Index Spool
  • Stream aggregate
  • Assert
  • Concatenation
  • Compute scalar
  • Segment
  • Sort
  • Operadores paralelos
    • Distributed streams
    • Repartition streams
    • Gather streams
  • Operadores de Join

3. Avanzado

  • Uso de caché de planes de ejecución Examinar y manipular
  • Parametrización forzada
  • Optimize adhoc for workloads
  • Parameter Sniffing
  • Optimize for
  • Planes guiados
  • Patronización y bifurcación
  • Recompilaciones automáticas

Recuerda que esto es una conferencia de 6h con descansos el resto de actividades del evento #SQLSatMadrid son gratuitas y tendrán lugar el sábado (pulsa en la imagen para ver la agenda del sábado)

c05c98fb-3445-4f91-a10a-d5f959ec81c5[1]

viernes, 16 de octubre de 2015

Ponente en codemotion 2015

image
Tengo el honor de haber sido elegido de nuevo como ponente de uno de los mayores eventos a nivel europeo sobre desarrollo de aplicaciones, que se realiza en Madrid (+1900 asistentes el año pasado).
En esta ocasión, me han seleccionado la siguiente sesión:
Cómo hacer tuning a capas de acceso a datos en .NET
En esta sesión hablaremos de tecnicas de profiling avanzado de aplicaciones .NET. Usaremos interceptores, compilaremos nuestra modificación de EntityFramework, usaremos ANTS profiler, analizaremos con PowerPivot, usaremos SQL Server Profiler, revisaremos cómo trabajamos nativamente con los datos ya capturados en la capa DAL de nuestra arquitectura,...*Preparate para optimizar de verdad!*

Una vez he leido la agenda, he visto un montón de sesiones a las que quiero asistir y veo bastante gente con la que quiero volver a coincidir, por lo que tiene pinta de que va a ser un eventazo!

jueves, 15 de octubre de 2015

Ponente en el SQL Saturday #459, Madrid 2015

sqlsat459_header[1]Estoy encantado de compartir que he sido aceptado como ponente en el próximo evento SQL Saturday #459 que se celebrará en Madrid el próximo día 21 de Noviembre de 2015.

 

El año pasado ya tuve el honor de impartir un par de sesiones en el mismo evento, que se celebró aquella vez en Barcelona, y este año han sido aceptadas las propuestas de “Cómo leer planes de ejecución 2015” así como una pre-con que se celebrará el viernes sobre “Planes de ejecución” de unas 4h de duración. Todavía no se ha publicado la agenda pero ya he visto que algunos de los mejores ponentes han publicado en Twitter que estarán presentes. Ponentes de la talla de Niko Neugebauer, Eladio Rincón, Kenneth Nielsen, Toblasz Koprowski,…por lo que estoy bastante contento de poderme reunir con ellos y aprender un montón!

miércoles, 24 de junio de 2015

AlwaysON con rutas de disco diferentes

Si tienes un entorno AlwaysON donde las BBDD replicadas están sobre ubicaciones diferente en cada uno de los nodos, gestionar los ficheros puede ser un problema si no tienes en cuenta la forma de proceder correcta.
En el siguiente post veremos cómo reaccionar en caso de tener que realizar una operación con los ficheros de BBDD en un entorno como el que vemos en la siguiente imagen:



Donde cada instancia alberga los ficheros de la misma BBDD en rutas diferentes.

CONTINUA LEYENDO...