【问题标题】:Sql transactions vs memory usage vs ini file [closed]Sql事务与内存使用与ini文件[关闭]
【发布时间】:2013-01-19 20:18:11
【问题描述】:

我正在构建一个连接到 sql server 的 Web 应用程序。 这个过程是这样的:用户登录网站,从那一刻起,有几个连接到数据库,但是从数据库到达的另一件事是将客户的公司表示为一个对象。客户端可能会在会话期间更改某些数据。以及会话结束时(客户端关闭浏览器)。发送到数据库的对象。 所以问题是从我把桌子带到我应该如何保留它的代码的那一刻起。在数据表或 ini 文件中。 请记住,这是浏览器,我想尽可能快地保持它。 谢谢大家。

【问题讨论】:

  • 一个.ini 文件?真的吗?
  • 传输到浏览器后,为什么还需要存储在内存中?
  • 因为如果客户会对数据进行某种更改,我想保存它并使用新数据。

标签: c# .net sql


【解决方案1】:

您应该将数据保存在数据库中,并在每次页面请求时从那里读取。至少,您应该从哪里开始,并且只有在您确实有任何性能问题时才考虑在内存中缓存数据。

你不应该为用户打开一个数据库连接,你应该为每个请求打开一个新的连接,并尽快关闭它。连接由系统池化并重复使用,因此不必在每次打开数据库时都建立与数据库的新连接,但您应该让系统处理所有这些。

应立即将更改的数据写入数据库。将数据保存在内存中并在会话结束时将其写入存在稳定性和时序问题。服务器不知道用户何时关闭浏览器,因此服务器认为会话在用户最后一次请求之后的某个时间结束,通常为 15 分钟。这意味着当用户关闭浏览器时不会写入数据,但最多会在 15 分钟后写入。如果用户再次登录,更改将在一段时间后显示。如果服务器在保存数据时出现问题,则数据将丢失,并且根本不会保存更改。

【讨论】:

    【解决方案2】:

    听起来你应该使用数据库。毫无疑问。

    您的用户期望 (ACID) 一致性,以及与多个用户一起使用 web 应用程序的能力等。当数据库开箱即用时,使用 ini 文件是没有意义的。

    【讨论】:

    • 这应该是一条评论。
    • 嗯,这就是问题的答案……
    • 而且它的质量非常低。像这样的单行应该是评论。
    • 一个简单的问题值得一个简单的答案。这不是评论、批评或观察。确实,英语词典对“评论”和“答案”的概念非常精确,其定义并未包括您应该使用的单词数量。
    • 我也不是。只是想保持网站质量。你好。
    猜你喜欢
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 2016-06-05
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    相关资源
    最近更新 更多