martes, 16 de junio de 2020
Cambio de blog y nuevo canal de youtube!
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.
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)
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
martes, 21 de febrero de 2017
Video de mi sesión en el Microsoft TechSummit
Datawarehouse como servicio en Azure
Que lo disfrutéis!
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!
lunes, 12 de septiembre de 2016
Ponente en el SQL Saturday #568, Madrid 2016
![]() | 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. |
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!
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?
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 ![]()
jueves, 28 de julio de 2016
Nuevo proyecto: In-Memory OLTP Utils
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,…
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:
- 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
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:
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:
- MvvmCross, desarrollo multiplataforma mediante patrones con Xamarin y C#
- Tips and Tricks para el desarrollo de soluciones IoT en .Net
- Entity Framework Core 1.0
- 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
(gracias a mi amigo Sergio Sisternes @sesispla por la foto)
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
. 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ó ![]()
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)
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:
¿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)
viernes, 16 de octubre de 2015
Ponente en codemotion 2015
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
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
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...


