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

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