c# - 在 Sql Server Session 数据库中存储多个值的有效方法是什么?

标签 c# .net asp.net sql sql-server

我的 aspx 页面上有 10 - 12 个变量需要存储在 SQL Server session 数据库(负载平衡器环境)中。

存储和检索它们的有效方法是什么

  1. 将所有事物分组到一个类中并存储在 session 中(我认为这将减少数据库调用的次数)

  2. 在 session 中存储每个变量(我认为这会对我存储的每个 session 对象进行数据库调用)

你们中的任何人都可以建议我这样做的有效方法吗?

最佳答案

就性能而言,这可能无关紧要,因此请使用产生最干净代码的任何东西。

每个单独的 session 项不需要需要单独的数据库调用。整个 session 在请求开始时从数据库加载;然后在请求结束时将整个** session 写回数据库(假设请求未使用只读 session )。

与自定义对象相比,由于 native 类型的序列化方式(序列化数据的大小和/或序列化的 CPU 成本),性能会有细微差异。与往返数据库的成本相比,这些差异通常是微不足道的。


** 我必须承认,我实际上不记得是将整个 session 写回数据库,还是只记得在当前请求期间添加/修改的那些项目。

关于c# - 在 Sql Server Session 数据库中存储多个值的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5657414/

相关文章:

c# - AuthorizeAttribute 和 IAuthenticationFilter 的区别

javascript - 如何使用 javascript 更改 href 属性?

c# - 获取用于内存映射的结构的大小

c# - ASP.Net MVC 3 登录和 Windows 身份验证

c# - 如何将 WPF 表单添加到选项卡控件的选项卡项中

c# - 有没有办法将 aspx 文件放入 Visual Studio 2008 .NET 3.5 的类库中?

c# - 为什么 C# 中条件运算符总是返回 int?

c# - DTS 脚本任务 : Runtime Error in SSIS task due to referenced DLLs

c# - 如何清除 rabbitmq (.net) 中的队列路由键绑定(bind)

java - 在java中使用.asmx Web服务?