Successfully reported this slideshow.

Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)

1

Share

Loading in …3
×
1 of 18
1 of 18

Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)

1

Share

Download to read offline

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!

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!

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)

  1. 1. #dotNetSpain2016 Enrique Catalá Mentor SolidQ (www.solidq.com) ecatala@solidq.com | @enriquecatala www.sqlpass.es Como hacer tuning a capas de acceso a datos en .NET
  2. 2. Patrocinadores Colaboradores #dotNetSpain2016
  3. 3. Comunidad PASS Spain: Próximos eventos http://www.sqlpass.es/
  4. 4. #dotNetSpain2016 1. Introducción 2. Demo time! Agenda
  5. 5. #dotNetSpain2016  Ingeniero Informático  Microsoft Data Platform MVP  Mentor en SolidQ ecatala@solidq.com www.solidq.com @enriquecatala enrique@enriquecatala.com www.enriquecatala.com
  6. 6. #dotNetSpain2016 Capas de acceso a datos
  7. 7. #dotNetSpain2016 Hardware Tuning HW (cabina, red,..) ServiciosTuning SQL, IIS Aplicación Tuning aplicaciones
  8. 8. #dotNetSpain2016 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
  9. 9. #dotNetSpain2016 Fundamentos • Tiempo de desarrollo • Diferencia de roles • Desarrollador vs. DBA • Independencia de la aplicación • Uso de modelo de datos • Abstracción de servidor de base de datos Másmotivos • Rechazo a T-SQL • Manejo de cadenas para acceso a datos • Errores en tiempo de ejecución vs. Compilación • Uso de lenguajes más familiares • Es más “cool”
  10. 10. #dotNetSpain2016 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.Compile dELinqQueryState 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
  11. 11. #dotNetSpain2016 Deja rodar tu app un tiempo y mira qué mejorar
  12. 12. #dotNetSpain2016 • List<T> -> O(n) • Dictionary<T,U> -> O(1)
  13. 13. #dotNetSpain2016 Generalmente es preferible hacer menos operaciones a la BBDD con mas conjuntos de filas
  14. 14. #dotNetSpain2016 • Evita procesados fila a fila Capas de acceso a datos • La estructura de datos importa, no es todo BBDD Complejidad algorítmica • Centra el tiro a donde esté el problema Profiling de una aplicación .NET • Ya no estamos en los 90. Hasta tu móvil tiene 8 núcleos  Consideraciones de concurrencia
  15. 15. No olvides realizar la encuesta ¡Gracias! #dotNetSpain2016 Enrique Catalá Bañuls Mentor SolidQ (www.solidq.com) ecatala@solidq.com | @enriquecatala http://aka.ms/DOTNETT6S4

×