Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如果在并发系统的整个应用程序中使用一个数据库连接实例,会发生什么?_Asp.net Mvc_Entity Framework_Asp.net Web Api_Ef Code First_Database Connection - Fatal编程技术网

Asp.net mvc 如果在并发系统的整个应用程序中使用一个数据库连接实例,会发生什么?

Asp.net mvc 如果在并发系统的整个应用程序中使用一个数据库连接实例,会发生什么?,asp.net-mvc,entity-framework,asp.net-web-api,ef-code-first,database-connection,Asp.net Mvc,Entity Framework,Asp.net Web Api,Ef Code First,Database Connection,我正在从事asp.NETMVC+WebAPI实体框架代码第一个项目,并使用异步方法。目前,我正在按每次呼叫创建数据库连接 创建数据库连接花费的时间很短, 因此,对服务器的每个请求都需要很短的时间来创建数据库连接, 对于上千个请求,这需要更多的时间 现在,我的问题是,如果我在整个应用程序中使用一个数据库连接实例,那么会发生什么?SQL Server和Oracle都有连接池,因此数据库连接背后的实际资源通常会被重用,即使您为每个调用创建了一个连接类 如果您有一个单例连接,您将不能有并发数据库请求。数

我正在从事asp.NETMVC+WebAPI实体框架代码第一个项目,并使用异步方法。目前,我正在按每次呼叫创建数据库连接

创建数据库连接花费的时间很短, 因此,对服务器的每个请求都需要很短的时间来创建数据库连接, 对于上千个请求,这需要更多的时间


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

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

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


连接池将根据实际应用的并发性而增长和缩小。

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