连接到DB仍然更昂贵?

The*_*ing 4 .net asp.net performance database-connection

我是ASP.NET的新手,只是构建我的第二个实时web应用程序.

一年前我学习ASP.NET的时候,有人告诉我"连接和从数据库中获取数据是比较昂贵的,所以尽量减少连接,并有效地重新使用检索到的数据".给出的理由是

  1. 首先需要建立与DB服务器的连接.
  2. 与IIS相比,DB服务器上的并发连接将更少.
  3. 使用断开连接的架构,以便可以很快关闭连接(当然还有其他flexibilites)等等.

当我的研究扩展时,我学习了其他一些存储数据的措施,这些数据一旦从回复中检索到数据库.但现在,我逐个学习它们比连接数据库更昂贵.喜欢...

  1. 会话变量:内存大小随着用户数量而增加
  2. 查看状态:加密和旅行的过程使其更加昂贵.
  3. 应用程序变量:在所有情况下都没有那么有用.
  4. 缓存:(我知道它们,但直到现在才使用它们).

还有Oflate,我反复建议不要在会话,查看状态等中存储检索到的表,而是连接到DB并在每次回发时重新抓取它.

并根据基于SQL Server的会话状态管理查看此内容,其中Framework本身使用DB来存储会话. 我觉得,我应该忘记我对数据库连接的初步学习和看法.

你说什么 ???

我们也欢迎任何其他建议/提示.

谢谢

Bri*_*den 11

通常你所说的是真的,但连接池会消除很多连接的开销.

使用连接池时,您有一组连接,这些连接在向数据库发出请求时使用.然后将这些连接回收用于后续使用.我在解释它方面做得很差,但一如既往维基百科有一些很好的信息可以帮助你入门.

http://en.wikipedia.org/wiki/Connection_pool

如果你正在寻找一个银弹,例如总是使用xxx,不幸的是没有一个.您需要评估每个方案并在那里做出决定.

例如,如果您与数据库服务器的连接速度很慢,则可能需要缓存检索的数据,以最大限度地减少对数据库的调用次数.

另一方面,如果您的系统资源有限,那么经常调用数据库可能是一个有效的选择.

您必须为您开发的每个系统评估这些情况,以充分利用您的软件,但如果构建正确,通常可以很容易地使系统适应您遇到的任何约束.