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

Enrique Catala Bañuls
Enrique Catala BañulsTechnical Leader at @SolidQ and Microsoft Data Platform MVP
#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
Patrocinadores
Colaboradores
#dotNetSpain2016
Comunidad PASS Spain:
Próximos eventos
http://www.sqlpass.es/
#dotNetSpain2016
1. Introducción
2. Demo time!
Agenda
#dotNetSpain2016
 Ingeniero Informático
 Microsoft Data Platform MVP
 Mentor en SolidQ
ecatala@solidq.com
www.solidq.com
@enriquecatala
enrique@enriquecatala.com
www.enriquecatala.com
#dotNetSpain2016
Capas de acceso a datos
#dotNetSpain2016
Hardware
Tuning HW (cabina,
red,..)
ServiciosTuning SQL, IIS
Aplicación Tuning aplicaciones
#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
#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”
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
#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
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
#dotNetSpain2016
Deja rodar tu app un tiempo y mira qué mejorar
#dotNetSpain2016
• List<T> -> O(n)
• Dictionary<T,U> -> O(1)
#dotNetSpain2016
Generalmente es preferible hacer menos operaciones
a la BBDD con mas conjuntos de filas
#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
No olvides realizar la encuesta
¡Gracias!
#dotNetSpain2016
Enrique Catalá Bañuls
Mentor SolidQ (www.solidq.com)
ecatala@solidq.com | @enriquecatala
http://aka.ms/DOTNETT6S4
1 of 18

More Related Content

What's hot(20)

Viewers also liked(20)

Planes de ejecucion 2Planes de ejecucion 2
Planes de ejecucion 2
Enrique Catala Bañuls966 views
Query storeQuery store
Query store
Enrique Catala Bañuls1.3K views
Migración a sql server 2016Migración a sql server 2016
Migración a sql server 2016
Enrique Catala Bañuls3.1K views
Planes de ejecucion 1Planes de ejecucion 1
Planes de ejecucion 1
Enrique Catala Bañuls1.2K views
Introduction To Value I GroupIntroduction To Value I Group
Introduction To Value I Group
smartled458 views
Guia Embarazo WeledaGuia Embarazo Weleda
Guia Embarazo Weleda
BCNPharma.com1.8K views
Areatzako jaiak egitaraua laburpena 2013 07 22Areatzako jaiak egitaraua laburpena 2013 07 22
Areatzako jaiak egitaraua laburpena 2013 07 22
JFB-EUSP de Dirección y Gestión de Proyectos1.1K views
Published Samples Asheesh Pandia 1112Published Samples Asheesh Pandia 1112
Published Samples Asheesh Pandia 1112
Communication Brand Management756 views
AlaskaAirlinesMagazine_08.15_p.25 AlaskaAirlinesMagazine_08.15_p.25
AlaskaAirlinesMagazine_08.15_p.25
Aliza Vaccher234 views
Invitación AsadoInvitación Asado
Invitación Asado
Luisaco864 views
En Liten BokEn Liten Bok
En Liten Bok
Textbyrån Beep2.4K views
Como XesúsComo Xesús
Como Xesús
diruab310 views
Espaciosutil Espaciosutil
Espaciosutil
espaciosutil339 views
el aceite de argan que es y como usarel aceite de argan que es y como usar
el aceite de argan que es y como usar
aceite de argan490 views
Cassandra NoSQLCassandra NoSQL
Cassandra NoSQL
Cristian Sánchez1.7K views
Court dismisses Base Minerals Zimbabwe's appealCourt dismisses Base Minerals Zimbabwe's appeal
Court dismisses Base Minerals Zimbabwe's appeal
Zimpapers Group (1980)1.9K views
Diario Resumen 20150916Diario Resumen 20150916
Diario Resumen 20150916
Diario Resumen493 views

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

More from Enrique Catala Bañuls(14)

Query storeQuery store
Query store
Enrique Catala Bañuls431 views
Planes de ejecucion 2016Planes de ejecucion 2016
Planes de ejecucion 2016
Enrique Catala Bañuls346 views
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)
Enrique Catala Bañuls406 views
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015
Enrique Catala Bañuls601 views
Escenarios híbridos con sql server 2014Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014
Enrique Catala Bañuls583 views
Planes de ejecución en sql server 2014Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014
Enrique Catala Bañuls935 views
Transacciones diferidasTransacciones diferidas
Transacciones diferidas
Enrique Catala Bañuls691 views
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacional
Enrique Catala Bañuls1.2K views
Experiencias de migraciones a sql server 2012-2014 Experiencias de migraciones a sql server 2012-2014
Experiencias de migraciones a sql server 2012-2014
Enrique Catala Bañuls1.7K views
Escenarios híbridos con SQL Server 2014Escenarios híbridos con SQL Server 2014
Escenarios híbridos con SQL Server 2014
Enrique Catala Bañuls870 views

Recently uploaded(20)

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