HttpContext.Current.Cache VS. Rendimiento de tabla SQL

asp.net-mvc-4 caching dapper performance sql-server

Pregunta

Tenemos una base de datos de carrito de compras mal diseñada. Todos los objetos procesados ​​que se utilizarán en el sitio frontal se almacenan en HttpContext.Current.Cache en Application_Start . Objetos procesados ​​me refiero a los resultados del script sql que tiene muchas combinaciones y las condiciones.

Buscando la mejor solución para eliminar el almacenamiento en caché o mejorar el proceso de almacenamiento en caché actual. Estoy pensando en almacenar los objetos procesados ​​en una tabla de SQL Server que se volverá a llenar cada medianoche. Y use Dapper ORM para recuperar datos de esta tabla de SQL Server e implementar el almacenamiento en caché de salida.

Espero que alguien comparta una solución de alta velocidad y fácil de mantener para este problema. :)

¡Gracias!

Respuesta experta

Lo que está describiendo es realmente: duplicar los datos en un segundo modelo (técnicamente redundante), más adecuado para la consulta. Si ese es el caso, entonces seguro: diviértete con eso, eso no es exactamente raro. Sin embargo, antes de hacer todo eso, es posible que desee probar las vistas indizadas ; podría ser que esto solucione casi todo sin tener que escribir todo el código de mantenimiento.

Sin embargo, sugeriría no "eliminar el almacenamiento en caché", sino simplemente "hacer caducar el caché en algún momento"; hay una diferencia importante Golpear la base de datos para los mismos datos en cada solicitud no es una gran idea.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow