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...

martes, 5 de mayo de 2015

Indexar claves ajenas

SQL Server por defecto no indexa una clave ajena y debemos ser nosotros los que lo hagamos. En este post verás un nuevo ejemplo de por qué es interesante tener siempre indexadas las claves ajenas.

Continua leyendo...

viernes, 24 de abril de 2015

Webcast gratuito SQLCLR para GlobalSpanishPASS

El próximo 6 de mayo de 2015 tengo el honor de impartir una sesión en formato Webcast sobre SQLCLR para el capítulo GlobalSpanishPASS chapter. Voy a repetir la sesión que impartí durante el evento #dotNetSpainConference celebrada el pasado Marzo. Si no fuiste uno de los 1100 asistentes a aquel evento, tienes otra oportunidad el próximo dia 6 de Mayo.

Para más información y registro: http://globalspanish.sqlpass.org/Inicio.aspx?EventID=2887

viernes, 17 de abril de 2015

SQLCLRUtils en GitHub

He creado el proyecto SQLCLRUtils en GitHub, sobre el que pienso ir añadiendo todos aquellos objetos CLR interesantes para trabajar con nuestros datos.
A priori mi intención solo va a ser ir añadiendo las funciones y procedimientos almacenados que realmente he acabado usando en proyectos reales y que tienen algún sentido para mi, pero entiendo que al ser un proyecto colaborativo libre, cualquiera que lo desee pueda aportar su granito de arena.

De momento he subido entre otras, algunas de las funciones que estuve enseñando en el evento dotNetConference2015 y la estructura está tal cual la utilicé para dicho evento. En sucesivas iteraciones iré dejando mas limpio y ordenado el proyecto.

Aquí lo tienes:https://github.com/enriquecatala/SQLCLRUtils

viernes, 6 de marzo de 2015

SQLCLR: .NET en el core de SQL Server

El fin de semana pasado tuve el placer de asistir como speaker en el evento #dotNetSpain2015 que se celebró en la universidad de alcalá en España. En el evento nos reunimos algo más de 1100 personas amantes todos de .NET, que demostraron lo fuerte que está la comunidad de desarrollo para la plataforma MS estos dias. Te recomiendo que leas el resumen que hizo mi amigo Juan Quijano sobre el evento: http://www.genbetadev.com/actualidad/dotnet-spain-conference-2015-un-exito-de-la-comunidad-de-desarrollo-net
En dicho evento pude compartir experiencias e inquietudes del sector, disfrutar de presentaciones de grandes speakers y por suerte además amigos mios como Santiago PorrasUnai Zorrilla, Luis Fraile, Luis Ruiz Pavón,…y bueno muchos otros que si me pongo no acabo y sobre todo conocer a grandes profesionales y apasionados por la tecnologia.
Aqui te dejo las slides de mi sesión:


Y aqui algunas fotos del evento:
https://onedrive.live.com/redir?resid=E1CF79E59F54ABED!434528&authkey=!AEqe0kXY-twuWZY&ithint=album%2c

jueves, 26 de febrero de 2015

Ponente dotNetSpain2015

Este próximo viernes 27 de Febrero de 2015 tengo el honor de impartir sesión en la conferencia dotNetSpain2015 que se celebrará en la universidad de Alcalá y acabo de ver que se ha cubierto el aforo de 1200 personas!

Untitled

jueves, 22 de enero de 2015

Aplicaciones escalables en la nube

El 22 de Noviembre tuve el placer de impartir una sesión junto a Miguel Lopez en la última edición del evento Codemotion, uno de los mas importantes a nivel europeo que reunió a 1925 asistentes. Aqui os dejo el material de la sesión.
Aplicaciones escalables en la nube: mentiras y verdades
Desarrollar para la nube no es tan transparente como creemos. Conocer correctamente este nuevo entorno, así como sus limitaciones nos ayudarán a evitar problemas de escalabilidad. En esta sesión veremos cómo desarrollar correctamente soluciones para la nube de Microsoft que sean escalables. Veremos ejemplos de lo que no es escalable y también veremos cómo podemos solucionarlo y evitarlo. Hablaremos de patrones de arquitectura, Unity, Entity Framework, capas de acceso a datos, worker roles, web roles,...escalabilidad!

jueves, 15 de enero de 2015

DBCC FREEPROCCACHE y sus peligros

El comando DBCC FREEPROCCACHE se encarga de borrar todos los planes de ejecución cacheados en la instancia (o uno en concreto si se especifica su handle específico). Este comando debe ser visto como lo que es, un comando para entornos de pruebas, pero nunca como un recurso a tener en cuenta en un entorno de producción.
Generalmente cuando alguien lee sobre este comando, acaba leyendo algo como lo que acabo de mencionar, en este caso me dispongo a mostrar qué ocurre cuando lo lanzamos en un sistema de producción real.

Continua leyendo...