【问题标题】:What will happen if I use one database connection instance in whole application in a concurrency system?如果我在并发系统的整个应用程序中使用一个数据库连接实例会发生什么?
【发布时间】:2017-09-26 22:28:46
【问题描述】:

我正在开发 asp.net MVC+WebAPI 实体框架代码优先项目,并使用异步方法。目前,我正在按调用创建数据库连接。

创建数据库连接需要很短的时间, 所以对服务器的每个请求都需要很短的时间来创建数据库连接, 而对于一千个请求,则需要更多时间。

现在,我的问题是,如果我在整个应用程序中使用一个数据库连接实例,会发生什么?

【问题讨论】:

  • 您还应该考虑缓存策略。您可能不需要每次都从数据库中检索数据,或者有适当的机制在项目过时时刷新缓存。

标签: asp.net-mvc entity-framework asp.net-web-api ef-code-first database-connection


【解决方案1】:

SQL Server 和 Oracle 具有连接池,因此数据库连接背后的实际资源通常会被重用,即使您为每个调用都创建了一个连接类。

如果你有一个单例连接,你将不能有并发的数据库请求。您将遇到数据库的单线程瓶颈。

连接池将根据您的应用程序实际具有的并发量而增长和缩小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 2019-03-06
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多