SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
SOLIDQ SUMMIT MADRID 2017
#SQSummit17
Enrique Catalá | Mentor | ecatala@solidq.com | @enriquecatala
Guillermo Perez | DEV | gperez@solidq.com |
Capas de acceso a datos .NET escalables de
verdad: el batido perfecto para el rendimiento
de tus bases de datos
SOLIDQ SUMMIT MADRID 2017
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
SOLIDQ SUMMIT MADRID 2017
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”
SOLIDQ SUMMIT MADRID 2017
SOLIDQ SUMMIT MADRID 2017
List<T>
O(n)
Dictionary<T,U>
O(1)
SOLIDQ SUMMIT MADRID 2017
Generalmente es preferible hacer menos operaciones a la
BBDD con mas conjuntos de filas
SOLIDQ SUMMIT MADRID 2017
SOLIDQ SUMMIT MADRID 2017
SOLIDQ SUMMIT MADRID 2017
public class MyDbContext : DbContext
{
//...
public DbSet<Product> Products
{
get; set;
}
}
var product = _dbContext.Products
.Find(4);
var product2 =
_dbContext.Products
.AsNoTracking()
.Where(p => p.Id == 4)
.FirstOrDefault();
Implementación Dapper y EF Core
SOLIDQ SUMMIT MADRID 2017
using(var _dapper = new
SqlConnection(config.ConnectionString))
{
_dapper.Open();
var product =
_dapper.Query<Product>(@"
SELECT
Id,Name,Col1,Col2
FROM
[dbo].[Products]
WHERE
Id = @ProductId",
new
{
ProductId = 4
}).FirstOrDefault();
}
Implementación Dapper y EF Core
SOLIDQ SUMMIT MADRID 2017
var order = _dbContext.Orders
.AsNoTracking()
.Include(o => o.Details)
.ThenInclude(d => d.Product)
.Include(o => o.Customer)
.Where(o => o.Id == 4);
Implementación Dapper y EF Core
Hierarchy Load
SOLIDQ SUMMIT MADRID 2017
var orders = _dapper.Query<Order,
Customer, Order>(
"/* Order join with customer */“
,(order, customer) => {
order.Customer = customer;
return order;
}
, queryParam
);
var details = _dapper.Query<OrderDetail,
Product,OrderDetail>(
"/* detail join with product */“
, (detail, product) => {
detail.Product = product;
return detail;
}
, queryParam
, splitOn: "OrderId,Id“
);
Implementación Dapper y EF Core
Hierarchy Load
SOLIDQ SUMMIT MADRID 2017
foreach (var order in orders)
{
order.Details = detailResult
.Where(d => d.OrderId == order.Id)
.ToList();
}
Implementación Dapper y EF Core
Hierarchy Load
SOLIDQ SUMMIT MADRID 2017
Parallel.ForEach(orders, (order) =>
{
order.Details = detailResult
.Where(d => d.OrderId == order.Id)
.ToList();
});
Implementación Dapper y EF Core
Hierarchy Load
SOLIDQ SUMMIT MADRID 2017
var ordersList =
_dapper.Query<Order, Customer, Order>(
/*
...
*/
);
var orders =
new ConcurrentDictionary<int, Order>(
ordersList
.ToDictionary(o =>o.Id, o => o)
);Implementación Dapper y EF Core
Hierarchy Load
SOLIDQ SUMMIT MADRID 2017
var detailsList =
_dapper.Query<OrderDetail,Product,OrderDetail>
(
/*
...
*/
);
var details = new ConcurrentDictionary
<int, IEnumerable<OrderDetail>> (
detailResult
.GroupBy(d => d.OrderId)
.ToDictionary(
d => d.FirstOrDefault().OrderId,
d => d.AsEnumerable()
)
);
Implementación Dapper y EF Core
Hierarchy Load
SOLIDQ SUMMIT MADRID 2017
Parallel.ForEach(orders, (o) =>
{
if (details.ContainsKey(o.Key))
o.Value.Details =
details[o.Key].ToList();
}
);
Implementación Dapper y EF Core
Hierarchy Load
SOLIDQ SUMMIT MADRID 2017
SOLIDQ SUMMIT MADRID 2017
SOLIDQ SUMMIT MADRID 2017
• Evita dependencia entre clases con el uso de
Interfaces
Arquitectura de
aplicación
• Evita procesados fila a fila
Capas de acceso a
datos
• La estructura de datos importa, no es todo BBDD
Complejidad
algorítmica
• Ya no estamos en los 90. Hasta tu móvil tiene 8
núcleos 
Consideraciones de
concurrencia
• Elige con criterio y úsalo bienORMs
SOLIDQ SUMMIT MADRID 2017
• +500h de trabajo
• Clases 100% ONLINE en directo
• Proyecto fin de máster real para tu empresa
• Tutorías bajo demanda
• Laboratorios virtuales guiados paso a paso
• Invitación 1 día al SolidQ Summit Madrid
• Te ayudamos en tus proyectos de BI & Analytics
CONTENIDOS
• BI & Analytics Overview
• Data Warehousing y Modelo Dimensional
• Obtención de datos. ETL e Integración
• Soluciones Analíticas
• Análisis y Visualización de la información
• Proyecto Fin de Máster
“Con la evolución de los tiempos, es imprescindible estudiar todo lo que tiene que ver con real-time,
analytics y el mundo de los datos. Por lo que, consideré que tener formación en BI me podría ser muy
útil y me venía muy bien personalmente, porque nuestro sistema trata con muchísimas transacciones y
muchísima carga y ‘el relacional’ ya se nos estaba quedando pequeño.
El máster nos dio una visión bastante general de cómo implementar un proyecto y gestionarlo tú mismo
y cómo ver las soluciones de distintas maneras. Aunque tenía mis dudas de hacer una formación online,
la valoración es bastante positiva, las clases son muy interactivas y al final salió todo muy bien.”
Adolfo Gabriel
VP Software
Development, Payvision
Máster en BI & Analytics
Alumni
¡Plazas Limitadas!
Más información:
http://www.solidq.com/es/masterbi
CONTENIDOS
• BI & Analytics Overview
• Data Warehousing y Modelo Dimensional
• Obtención de datos. ETL e Integración
• Soluciones Analíticas
• Análisis y Visualización de la información
• Proyecto Fin de Máster
SOLIDQ SUMMIT MADRID 2017

Más contenido relacionado

Similar a Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el rendimiento de tus BBDD - SolidQ Summit 2017

Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Enrique Catala Bañuls
 
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...SolidQ
 
A todo gas: inyectando nitrógeno para incrementar la velocidad de las queries...
A todo gas: inyectando nitrógeno para incrementar la velocidad de las queries...A todo gas: inyectando nitrógeno para incrementar la velocidad de las queries...
A todo gas: inyectando nitrógeno para incrementar la velocidad de las queries...SolidQ
 
Operational Analytics, ¿amigo o enemigo de los ETLs y DQ clásicos? - SolidQ S...
Operational Analytics, ¿amigo o enemigo de los ETLs y DQ clásicos? - SolidQ S...Operational Analytics, ¿amigo o enemigo de los ETLs y DQ clásicos? - SolidQ S...
Operational Analytics, ¿amigo o enemigo de los ETLs y DQ clásicos? - SolidQ S...SolidQ
 
Real-time con Azure Stream Analytics - SolidQ Summit 2017
Real-time con Azure Stream Analytics - SolidQ Summit 2017Real-time con Azure Stream Analytics - SolidQ Summit 2017
Real-time con Azure Stream Analytics - SolidQ Summit 2017SolidQ
 
4 modelos para interactuar y extraer datos de tu SQL Server a páginas web a t...
4 modelos para interactuar y extraer datos de tu SQL Server a páginas web a t...4 modelos para interactuar y extraer datos de tu SQL Server a páginas web a t...
4 modelos para interactuar y extraer datos de tu SQL Server a páginas web a t...SolidQ
 
Operaciones eficientes - di adiós a los procesos repetitivos - SolidQ Summit ...
Operaciones eficientes - di adiós a los procesos repetitivos - SolidQ Summit ...Operaciones eficientes - di adiós a los procesos repetitivos - SolidQ Summit ...
Operaciones eficientes - di adiós a los procesos repetitivos - SolidQ Summit ...SolidQ
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverEnrique Catala Bañuls
 
Migrando Qlik a Power BI - SolidQ Summit 2017
Migrando Qlik a Power BI - SolidQ Summit 2017Migrando Qlik a Power BI - SolidQ Summit 2017
Migrando Qlik a Power BI - SolidQ Summit 2017SolidQ
 
4 escenarios para volverse locos en Retail y cómo solucionarlos
4 escenarios para volverse locos en Retail y cómo solucionarlos4 escenarios para volverse locos en Retail y cómo solucionarlos
4 escenarios para volverse locos en Retail y cómo solucionarlosSolidQ
 
Nuevos aliados para la visualización de BI | SolidQ Summit 2014
Nuevos aliados para la visualización de BI | SolidQ Summit 2014Nuevos aliados para la visualización de BI | SolidQ Summit 2014
Nuevos aliados para la visualización de BI | SolidQ Summit 2014SolidQ
 
Entorno de datos Microsoft Cloud
Entorno de datos Microsoft CloudEntorno de datos Microsoft Cloud
Entorno de datos Microsoft CloudJoseph Lopez
 
Super SSIS, tu nuevo superhéroe - SolidQ Summit 2017
Super SSIS, tu nuevo superhéroe - SolidQ Summit 2017Super SSIS, tu nuevo superhéroe - SolidQ Summit 2017
Super SSIS, tu nuevo superhéroe - SolidQ Summit 2017SolidQ
 
Portal del Cliente D365 FO, D365CE, Power Platform y Dataverse
Portal del Cliente D365 FO, D365CE, Power Platform y DataversePortal del Cliente D365 FO, D365CE, Power Platform y Dataverse
Portal del Cliente D365 FO, D365CE, Power Platform y DataverseDQSconsulting
 
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...Afinando la Administración de SQL Server y Novedades de Administración 2016 -...
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...SolidQ
 
La guía para sacarle provecho a tu proyecto de BBDD con Visual Studio - Solid...
La guía para sacarle provecho a tu proyecto de BBDD con Visual Studio - Solid...La guía para sacarle provecho a tu proyecto de BBDD con Visual Studio - Solid...
La guía para sacarle provecho a tu proyecto de BBDD con Visual Studio - Solid...SolidQ
 
Programa Taller de Investigacion en Business Intelligence con MSSQL Server 20...
Programa Taller de Investigacion en Business Intelligence con MSSQL Server 20...Programa Taller de Investigacion en Business Intelligence con MSSQL Server 20...
Programa Taller de Investigacion en Business Intelligence con MSSQL Server 20...LPI ONG
 
La estandarización y automatización como factores clave para el éxito de una ...
La estandarización y automatización como factores clave para el éxito de una ...La estandarización y automatización como factores clave para el éxito de una ...
La estandarización y automatización como factores clave para el éxito de una ...confluent
 

Similar a Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el rendimiento de tus BBDD - SolidQ Summit 2017 (20)

Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
 
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...
 
A todo gas: inyectando nitrógeno para incrementar la velocidad de las queries...
A todo gas: inyectando nitrógeno para incrementar la velocidad de las queries...A todo gas: inyectando nitrógeno para incrementar la velocidad de las queries...
A todo gas: inyectando nitrógeno para incrementar la velocidad de las queries...
 
Operational Analytics, ¿amigo o enemigo de los ETLs y DQ clásicos? - SolidQ S...
Operational Analytics, ¿amigo o enemigo de los ETLs y DQ clásicos? - SolidQ S...Operational Analytics, ¿amigo o enemigo de los ETLs y DQ clásicos? - SolidQ S...
Operational Analytics, ¿amigo o enemigo de los ETLs y DQ clásicos? - SolidQ S...
 
Real-time con Azure Stream Analytics - SolidQ Summit 2017
Real-time con Azure Stream Analytics - SolidQ Summit 2017Real-time con Azure Stream Analytics - SolidQ Summit 2017
Real-time con Azure Stream Analytics - SolidQ Summit 2017
 
4 modelos para interactuar y extraer datos de tu SQL Server a páginas web a t...
4 modelos para interactuar y extraer datos de tu SQL Server a páginas web a t...4 modelos para interactuar y extraer datos de tu SQL Server a páginas web a t...
4 modelos para interactuar y extraer datos de tu SQL Server a páginas web a t...
 
Operaciones eficientes - di adiós a los procesos repetitivos - SolidQ Summit ...
Operaciones eficientes - di adiós a los procesos repetitivos - SolidQ Summit ...Operaciones eficientes - di adiós a los procesos repetitivos - SolidQ Summit ...
Operaciones eficientes - di adiós a los procesos repetitivos - SolidQ Summit ...
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql server
 
Migrando Qlik a Power BI - SolidQ Summit 2017
Migrando Qlik a Power BI - SolidQ Summit 2017Migrando Qlik a Power BI - SolidQ Summit 2017
Migrando Qlik a Power BI - SolidQ Summit 2017
 
4 escenarios para volverse locos en Retail y cómo solucionarlos
4 escenarios para volverse locos en Retail y cómo solucionarlos4 escenarios para volverse locos en Retail y cómo solucionarlos
4 escenarios para volverse locos en Retail y cómo solucionarlos
 
Nuevos aliados para la visualización de BI | SolidQ Summit 2014
Nuevos aliados para la visualización de BI | SolidQ Summit 2014Nuevos aliados para la visualización de BI | SolidQ Summit 2014
Nuevos aliados para la visualización de BI | SolidQ Summit 2014
 
Entorno de datos Microsoft Cloud
Entorno de datos Microsoft CloudEntorno de datos Microsoft Cloud
Entorno de datos Microsoft Cloud
 
Super SSIS, tu nuevo superhéroe - SolidQ Summit 2017
Super SSIS, tu nuevo superhéroe - SolidQ Summit 2017Super SSIS, tu nuevo superhéroe - SolidQ Summit 2017
Super SSIS, tu nuevo superhéroe - SolidQ Summit 2017
 
Portal del Cliente D365 FO, D365CE, Power Platform y Dataverse
Portal del Cliente D365 FO, D365CE, Power Platform y DataversePortal del Cliente D365 FO, D365CE, Power Platform y Dataverse
Portal del Cliente D365 FO, D365CE, Power Platform y Dataverse
 
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...Afinando la Administración de SQL Server y Novedades de Administración 2016 -...
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...
 
Todomir
TodomirTodomir
Todomir
 
La guía para sacarle provecho a tu proyecto de BBDD con Visual Studio - Solid...
La guía para sacarle provecho a tu proyecto de BBDD con Visual Studio - Solid...La guía para sacarle provecho a tu proyecto de BBDD con Visual Studio - Solid...
La guía para sacarle provecho a tu proyecto de BBDD con Visual Studio - Solid...
 
Programa Taller de Investigacion en Business Intelligence con MSSQL Server 20...
Programa Taller de Investigacion en Business Intelligence con MSSQL Server 20...Programa Taller de Investigacion en Business Intelligence con MSSQL Server 20...
Programa Taller de Investigacion en Business Intelligence con MSSQL Server 20...
 
La estandarización y automatización como factores clave para el éxito de una ...
La estandarización y automatización como factores clave para el éxito de una ...La estandarización y automatización como factores clave para el éxito de una ...
La estandarización y automatización como factores clave para el éxito de una ...
 
Webinar Oracle Data Integrator 12c (ODI)
Webinar Oracle Data Integrator 12c (ODI)Webinar Oracle Data Integrator 12c (ODI)
Webinar Oracle Data Integrator 12c (ODI)
 

Más de SolidQ

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?SolidQ
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en LinuxSolidQ
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida realSolidQ
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízateSolidQ
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksSolidQ
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BISolidQ
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesSolidQ
 
R en relacional
R en relacionalR en relacional
R en relacionalSolidQ
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!SolidQ
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en AzureSolidQ
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018SolidQ
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018SolidQ
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018SolidQ
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018SolidQ
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...SolidQ
 

Más de SolidQ (20)

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantes
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en Linux
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízate
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocks
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BI
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
R en relacional
R en relacionalR en relacional
R en relacional
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en Azure
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
 

Último

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 

Último (20)

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 

Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el rendimiento de tus BBDD - SolidQ Summit 2017

  • 1. SOLIDQ SUMMIT MADRID 2017 #SQSummit17 Enrique Catalá | Mentor | ecatala@solidq.com | @enriquecatala Guillermo Perez | DEV | gperez@solidq.com | Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el rendimiento de tus bases de datos
  • 2. SOLIDQ SUMMIT MADRID 2017 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
  • 3. SOLIDQ SUMMIT MADRID 2017 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”
  • 5. SOLIDQ SUMMIT MADRID 2017 List<T> O(n) Dictionary<T,U> O(1)
  • 6. SOLIDQ SUMMIT MADRID 2017 Generalmente es preferible hacer menos operaciones a la BBDD con mas conjuntos de filas
  • 7.
  • 10.
  • 11. SOLIDQ SUMMIT MADRID 2017 public class MyDbContext : DbContext { //... public DbSet<Product> Products { get; set; } } var product = _dbContext.Products .Find(4); var product2 = _dbContext.Products .AsNoTracking() .Where(p => p.Id == 4) .FirstOrDefault(); Implementación Dapper y EF Core
  • 12. SOLIDQ SUMMIT MADRID 2017 using(var _dapper = new SqlConnection(config.ConnectionString)) { _dapper.Open(); var product = _dapper.Query<Product>(@" SELECT Id,Name,Col1,Col2 FROM [dbo].[Products] WHERE Id = @ProductId", new { ProductId = 4 }).FirstOrDefault(); } Implementación Dapper y EF Core
  • 13.
  • 14. SOLIDQ SUMMIT MADRID 2017 var order = _dbContext.Orders .AsNoTracking() .Include(o => o.Details) .ThenInclude(d => d.Product) .Include(o => o.Customer) .Where(o => o.Id == 4); Implementación Dapper y EF Core Hierarchy Load
  • 15. SOLIDQ SUMMIT MADRID 2017 var orders = _dapper.Query<Order, Customer, Order>( "/* Order join with customer */“ ,(order, customer) => { order.Customer = customer; return order; } , queryParam ); var details = _dapper.Query<OrderDetail, Product,OrderDetail>( "/* detail join with product */“ , (detail, product) => { detail.Product = product; return detail; } , queryParam , splitOn: "OrderId,Id“ ); Implementación Dapper y EF Core Hierarchy Load
  • 16. SOLIDQ SUMMIT MADRID 2017 foreach (var order in orders) { order.Details = detailResult .Where(d => d.OrderId == order.Id) .ToList(); } Implementación Dapper y EF Core Hierarchy Load
  • 17.
  • 18. SOLIDQ SUMMIT MADRID 2017 Parallel.ForEach(orders, (order) => { order.Details = detailResult .Where(d => d.OrderId == order.Id) .ToList(); }); Implementación Dapper y EF Core Hierarchy Load
  • 19.
  • 20. SOLIDQ SUMMIT MADRID 2017 var ordersList = _dapper.Query<Order, Customer, Order>( /* ... */ ); var orders = new ConcurrentDictionary<int, Order>( ordersList .ToDictionary(o =>o.Id, o => o) );Implementación Dapper y EF Core Hierarchy Load
  • 21. SOLIDQ SUMMIT MADRID 2017 var detailsList = _dapper.Query<OrderDetail,Product,OrderDetail> ( /* ... */ ); var details = new ConcurrentDictionary <int, IEnumerable<OrderDetail>> ( detailResult .GroupBy(d => d.OrderId) .ToDictionary( d => d.FirstOrDefault().OrderId, d => d.AsEnumerable() ) ); Implementación Dapper y EF Core Hierarchy Load
  • 22. SOLIDQ SUMMIT MADRID 2017 Parallel.ForEach(orders, (o) => { if (details.ContainsKey(o.Key)) o.Value.Details = details[o.Key].ToList(); } ); Implementación Dapper y EF Core Hierarchy Load
  • 23.
  • 26.
  • 27. SOLIDQ SUMMIT MADRID 2017 • Evita dependencia entre clases con el uso de Interfaces Arquitectura de aplicación • Evita procesados fila a fila Capas de acceso a datos • La estructura de datos importa, no es todo BBDD Complejidad algorítmica • Ya no estamos en los 90. Hasta tu móvil tiene 8 núcleos  Consideraciones de concurrencia • Elige con criterio y úsalo bienORMs
  • 28. SOLIDQ SUMMIT MADRID 2017 • +500h de trabajo • Clases 100% ONLINE en directo • Proyecto fin de máster real para tu empresa • Tutorías bajo demanda • Laboratorios virtuales guiados paso a paso • Invitación 1 día al SolidQ Summit Madrid • Te ayudamos en tus proyectos de BI & Analytics CONTENIDOS • BI & Analytics Overview • Data Warehousing y Modelo Dimensional • Obtención de datos. ETL e Integración • Soluciones Analíticas • Análisis y Visualización de la información • Proyecto Fin de Máster “Con la evolución de los tiempos, es imprescindible estudiar todo lo que tiene que ver con real-time, analytics y el mundo de los datos. Por lo que, consideré que tener formación en BI me podría ser muy útil y me venía muy bien personalmente, porque nuestro sistema trata con muchísimas transacciones y muchísima carga y ‘el relacional’ ya se nos estaba quedando pequeño. El máster nos dio una visión bastante general de cómo implementar un proyecto y gestionarlo tú mismo y cómo ver las soluciones de distintas maneras. Aunque tenía mis dudas de hacer una formación online, la valoración es bastante positiva, las clases son muy interactivas y al final salió todo muy bien.” Adolfo Gabriel VP Software Development, Payvision Máster en BI & Analytics Alumni ¡Plazas Limitadas! Más información: http://www.solidq.com/es/masterbi CONTENIDOS • BI & Analytics Overview • Data Warehousing y Modelo Dimensional • Obtención de datos. ETL e Integración • Soluciones Analíticas • Análisis y Visualización de la información • Proyecto Fin de Máster