¿Necesito parametrizar consultas básicas?

c# dapper

Pregunta

Tengo EntityFramework y LINQ to SQL background.

Estoy pensando en utilizar Dapper para mejorar el rendimiento.

Dapper almacena información en caché sobre cada consulta que ejecuta, esto le permite materializar objetos rápidamente y procesar parámetros rápidamente. La implementación actual almacena en caché esta información en un objeto ConcurrentDictionary . Los objetos que almacena nunca se lavan. Si está generando cadenas de SQL sobre la marcha sin usar parámetros, es posible que tenga problemas de memoria. Podemos convertir los diccionarios a un LRU Cache .

¿Tengo que parametrizar todas las consultas? Incluso las consultas que no tienen ningún parámetro.

Ejemplo

Select Id,Boo FROM dbo.FOO

Respuesta aceptada

No hay nada que varíe en su consulta, así que no, no necesita parametrizarlo.

La advertencia está ahí para decirle que si escribe Select Id,Boo FROM dbo.FOO where Bar=3 , Select Id,Boo FROM dbo.FOO where Bar=4 , y Select Id,Boo FROM dbo.FOO where Bar=5 entonces 3 consultas serán almacenadas en caché. Y a medida que continúas variando lo que estás haciendo coincidir con Bar , se harán aún más copias.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué