Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Como 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!

  • Login to see the comments

Como hacer tuning a capas de acceso a datos en .NET

  1. 1. Cómo hacer tuning a capas de acceso a datos en .NET Enrique Catalá Bañuls Mentor SolidQ ecatala@solidq.com www.solidq.com @enriquecatala www.enriquecatala.com MADRID · NOV 27-28 · 2015
  2. 2. Comunidad SQL Saturday en España  Evento anual con sesiones del mas alto nivel técnico  Ponentes de renombre nacionales e internacionales  MVPs, equipo microsoft y especialistas internacionales  Segunda edición con mas de 300 asistentes este año  Este año con 24 sesiones gratuitas y una preconferencia de 4h el viernes  La comunidad para la los apasionados de SQL Server! www.sqlsaturday.com
  3. 3. MADRID · NOV 27-28 · 2015 Enrique Catalá Bañuls  Ingeniero Informático  Microsoft Data Platform MVP  Mentor en SolidQ  Tuning y alta disponibilidad ecatala@solidq.com www.solidq.com @enriquecatala enrique@enriquecatala.com www.enriquecatala.com
  4. 4. MADRID · NOV 27-28 · 2015 Agenda 1. Capas de acceso a datos 2. Complejidad algorítmica 3. Profiling de una aplicación .NET 4. Profiling de un Worker Role 5. Consideraciones de concurrencia 6. INTRODUCCIÓN Y DEMOS!!!
  5. 5. MADRID · NOV 27-28 · 2015 Enfoque a tuning: escenarios posibles Hardware Tuning HW (cabina, red,..) ServiciosTuning SQL, IIS Aplicación Tuning aplicaciones
  6. 6. MADRID · NOV 27-28 · 2015 Capas de acceso a datos Tipología de acceso Por conjuntos Por cursores Patrones de bajo nivel Dinámico Adhoc Parametrizable Estático Stored procedures Arquitecturas Modelo conectividad Conectada Desconectada Modelo de desarrollo Manual ORM
  7. 7. MADRID · NOV 27-28 · 2015 Demo 1 Profiling sencillo de una aplicación Añadiendo intercepción
  8. 8. MADRID · NOV 27-28 · 2015 Entity Framework Después de 18 meses de duro trabajo, la aplicación no escala…¿qué hacemos? Librería Método ¿Qué hace? Query.PlanCompiler.Pl anCompiler Compile(cqt.DbCommandTree ctree, …….) Compila query hacia SQL Server. Coste de compilación. Aquí generalmente es donde debemos poner esfuerzos en optimizar linq Objects.Elinq.Compiled ELinqQueryState GetExecutionPlan(MergeOption? forMergeOption) Obtener plan de ejecución ya compilado previamente Objects.Elinq.ELinqQu eryState GetExecutionPlan(MergeOption? forMergeOption) Obtener plan de ejecución todavía no compilado Objects.ObjectQuery<T > GetResults(MergeOption? forMergeOption) Obtiene datos. Incluye datos GetExecutionPlan, Compile y el coste de materializar incluido. Es el coste total
  9. 9. MADRID · NOV 27-28 · 2015 Entity Framework Después de 18 meses de duro trabajo, la aplicación no escala…¿qué hacemos?
  10. 10. MADRID · NOV 27-28 · 2015 Complejidad algorítmica List<T> -> O(n) Dictionary<T,U> -> O(1)
  11. 11. ¿Preguntas? Enrique Catalá Bañuls Mentor SolidQ ecatala@solidq.com www.solidq.com @enriquecatala www.enriquecatala.com MADRID · NOV 27-28 · 2015

×