Ver por etiquetas

Todas las etiquetas » Performance (RSS)

EF DateTime2 y el índice perdido

the bug hunting! Hoy me han remitido un caso muy curioso de EF y el tratamiento de los campos DateTime . Básicamente, lo que me comentaban era que EF generaba una consulta incorrecta incluyendo un CAST a DateTime2, con lo cual hacía imposible la utilización del índice que la base de datos tenía sobre esta columna. Para seros sinceros, me sonó raro, puesto que es habitual ver el profiling de las consultas y me hubiera cantado a la primera, por lo que me puse a investigar el tema. Como siempre, lo...

HOT:Inserciones masivas en Sql Sersver vs Mongo DB ( III)

  DESCARGO DE RESPONSABILIDAD Antes de empezar la entrada me gustaría dejar claro que esto es un pasatiempos , una forma de dilucidar quien pagaba las cenas durante el tiempo que nos toco a los dos estar perdidos en una ciudad que no es la nuestra con nuestros respectivos trabajos. La idea de esta serie de blogs no es ver si queremos más a Papa o a Mama, a Sql Server o a una NoSQL. Los resultados que se obtengan no tienen porque hacer pensar que una es mejor que la otra ( sobre todo cuando son...

HOT:Inserciones Masivas en MongoDB vs Sql Server (II)

DESCARGO DE RESPONSABILIDAD Antes de empezar la entrada me gustaría dejar claro que esto es un pasatiempos , una forma de dilucidar quien pagaba las cenas durante el tiempo que nos toco a los dos estar perdidos en una ciudad que no es la nuestra con nuestros respectivos trabajos. La idea de esta serie de blogs no es ver si queremos más a Papa o a Mama, a Sql Server o a una NoSQL. Los resultados que se obtengan no tienen porque hacer pensar que una es mejor que la otra ( sobre todo cuando son compatibles...

EF 4.1 y la pre-generación de vistas

La verdad es que el tema de la pregeneración de vistas ya es algo sobre lo que he hablado bastante en mi blog, la ultima entrada creo que fué esta referida a temas de rendimiento, algo sobre lo que afecta mucho, sobre todo cuando hablamos de modelos grandes ( en los tiempos de carga y/o de primeras operaciones ). Generalmente, la forma más sencilla de precompilar estas vistas era por medio de una plantilla de T4, como la siguiente , que se encargaba de leer la información de nuestro modelo EDM y...

EF 4.0 Performance Tips #8

Sin lugar a dudas este es el tip de rendimiento más rebuscado de todos los visto hasta ahora, alguno podrá decir que ya los había un poco rebuscados, pero bueno, esta es mi opinión. Para tratar de explicarnos nos pondremos en situación. Supongamos que tenemos una tabla con una columna de tipo varchar, es decir, una columna no unicode, tal y como podría ser la siguiente: CREATE TABLE [dbo].[NonUnicodeTest]( [idTest] [int] NOT NULL, [field] [varchar](10) NOT NULL, CONSTRAINT [PK_NonUnicodeTest] PRIMARY...
Publicado por Unai | 5 comment(s)

EF 4.0 Performance Tips #7

Al final está saliendo una lista interesante de tips a tener en cuenta, y la verdad, cuando empecé a escribir esto no tenía intención que fuera tan grande, tendré que ponerlo blanco sobre negro y hacer un articulo para Krasis y Scribid :-). Este último va a ser el más sencillo de todos, aunque seguramente para entenderlo hay que saber algunas cosas de infraestructura de EF, que ya comentamos en algunos post como aquí y aquí . Cada unos de los objetos de consulta de los que se dispone dentro de nuestros...

EF 4.0 Performance Tips #6

Ya llevamos unos cuantos tips de rendimiento con Entity Framework, por ahora la mayoría se basaban en aspéctos técnicos simplemente, materialización de consultas, consultas parametrizadas, vistas precompiladas etc… En este tip haremos algo distinto, nos centraremos más en como hacemos nuestros modelos de entidades, intentando balancear entre la práctica y las bondades de un diseño de dominio correcto. Tanto las antiguas como las nuevas capacidades de modelado nos permiten solventar la impedancia...

EF 4.0 Performance Tips #5 (#1 Revisited )

El el primer tip de rendimiento sobre EF 4.0, #1 , hablamos sobre las diferencias que se producían si en nuestras consultas sobre L2E hardcodeábamos valores o hacíamos uso de variables. Básicamente mientras el uso de variables provocaba que las consultas fueran parametrizadas el hecho de establecer valores directamente hacía que nuestras consultas fueran adhoc y por lo tanto un trashing de nuestra cache de planes de ejecución. Este comportamiento es lo normal...

EF 4.0 Performance Tips #4

Como muchos sabréis, sobre todo lo que ya habéis jugado con la primera version de ADO.NET Entity Framework , una de las novedades en la version actual es la carga perezosa de forma implícita o automática. Esta nueva opción de carga viene marcada de forma automática con la plantilla de generacion de código por defecto, clases prescriptivas, por medio de una opción llamada LazyLoadingEnabled tal como podéis observar en el siguiente trozo de código que muestra el constructor por defecto de un contexto...

EF 4.0 Performance Tips #3

En los dos primeras entregas, #1 y #2 hemos visto algunos pequeños elementos que harán mejorar de una forma bastante importante nuestras aplicaciones usando ADO.NET EF , aunque para ello apenas hemos tenido que tocar nuestro código y/o nuestros modelos de entidades. En esta tercera entrega, veremos un ejemplo de una técnica de modelado de entidades que nos permitirá relajar ciertas consultas que pudieran representar un posible problema dentro de nuestras aplicaciones. La técnica en cuestión se conoce...

EF 4.0 Performance Tips #2

Uno de los elementos más fáciles de implementar y gracias al cual notaremos una importante mejora dentro de nuestras aplicaciones usando .NET Entity Framework, aquí es independiente la version, es el uso de la “precompilación de vistas”. Uno de de los mayores puntos en la creación de la abstracción de la base de datos por parte de EF consiste en la creacion de vistas de consulta y actualización en el lenguaje nativo de la base de datos. Durante este proceso hay una carga importante de tiempo y de...

EF 4.0 Performance Tips #1

Ya desde hace algún tiempo me rondaba por la cabeza la idea de poner post con tips de rendimiento a tener en cuenta dentro de Entity Framework 4.0, algunos de ellos serán más habituales y sencillos de resolver, otros por contra puede que sean más complicados de encontrar. Espero que la carga de trabajo me ayude a que los siguientes números no se dilaten demasiado :-)   Empezamos por una sencillita, ¿cual es la diferencia entre las siguientes consultas en Linq2Entities y que impacto podría tener...
Publicado por Unai | 13 comment(s)