InProc会话或保存到数据库(使用EF4.1)

时间:2011-06-22 17:21:20

标签: c# asp.net

在重建网站时,我正在重新思考我网站的各个方面。

我当前网站所做的一件事是通过购买流程的各种页面请求将购物车存储在会话(InProc)中。

我正在考虑不再使用会话状态,而是在必要时使用Entity Framework将购物车保存到数据库。

我是否会以这种方式对购物车的性能产生巨大影响?

2 个答案:

答案 0 :(得分:0)

使用数据库存储购物车时,您可能不会注意到任何性能差异。加分是,如果你的网站起飞,你的应用程序每天可以获得10,000次点击:)

答案 1 :(得分:0)

在数据库中存储数据会有性能损失吗?是。您的用户可能会注意到吗?可能不是。这个以及您的应用程序所做的所有其他小数据调用是否会对您的用户产生明显的影响?当然。像大多数事物一样,您需要平衡需求,收益和资源。

我首先会问您为什么要将购物车存储在数据库中。跳到脑海的原因包括Web场景和w3wp重置或失败时的持久性。

Web场方案有一些解决方案:进程外会话模式,数据库会话模式或使用进程内模式的粘性会话。查看ASP.NET session modes了解详情。

如果你要做的只是坚持你的购物车或保护它免受内存中的波动,你可以将会话状态作为快速实施的解决方案移动到数据库,但你也可以转到显式的数据库表。会话大小,购物车数据大小,网络和硬件性能以及系统的许多其他方面都可能影响您的结果。所以衡量,改变,衡量,比较。