Sql server 实体框架,如何增加限额?

Sql server 实体框架,如何增加限额?,sql-server,sql-server-2008,entity-framework,database-connection,connection-pooling,Sql Server,Sql Server 2008,Entity Framework,Database Connection,Connection Pooling,我们正在构建一个应用程序,它每周都会并发地通过数据库发出大量请求 我们有大约15-20个线程同时查询数据库 我们实际上遇到了很多问题: 在数据库端(RAM不足):正在解决 但在客户身上也是如此。在尝试获取连接或执行命令时出现异常。这些命令是通过实体框架实现的 该应用程序有两部分:一个网站和一个控制台应用程序 那么谁能告诉我如何增加以下值 连接超时 命令超时 连接池大小 我认为在服务器端(SQL server或IIS)必须做一些事情,但我找不到可以在ObjectContext实例上设置的位置。

我们正在构建一个应用程序,它每周都会并发地通过数据库发出大量请求

我们有大约15-20个线程同时查询数据库

我们实际上遇到了很多问题:

在数据库端(RAM不足):正在解决

但在客户身上也是如此。在尝试获取连接或执行命令时出现异常。这些命令是通过实体框架实现的

该应用程序有两部分:一个网站和一个控制台应用程序

那么谁能告诉我如何增加以下值

  • 连接超时
  • 命令超时
  • 连接池大小

我认为在服务器端(SQL server或IIS)必须做一些事情,但我找不到可以在
ObjectContext
实例上设置的位置。连接超时和连接池大小为,但如果只有15-20个线程,则问题很可能出现在其他地方,因为默认连接池大小为100。

可以在
ObjectContext
实例上设置。连接超时和连接池大小为,但如果只有15-20个线程,则问题很可能在其他地方,因为默认连接池大小为100。

将objectContext包含在using块中,以便在完成工作后处理上下文

您可以创建一个方法来传入线程,该线程使用您的实体上下文执行您想要的工作,然后在工作完成后处理连接。您可以使用stateinfo对象变量传入不同的参数,以便在方法的生命周期内使用

void DoContextWork(object stateInfo)
    {

    // wrap your context in a using clause
    using(var objectContext = new YourEntity()
       {
           // Do work here
       }

    }

您可以让多个线程调用此方法,并且每次调用连接时,您都可以在数据库上执行工作,而不会出现上述问题。

将objectContext包含在using块中,以便在您完成工作后处理上下文

您可以创建一个方法来传入线程,该线程使用您的实体上下文执行您想要的工作,然后在工作完成后处理连接。您可以使用stateinfo对象变量传入不同的参数,以便在方法的生命周期内使用

void DoContextWork(object stateInfo)
    {

    // wrap your context in a using clause
    using(var objectContext = new YourEntity()
       {
           // Do work here
       }

    }

您可以让多个线程调用此方法,每次调用连接时,您都可以在数据库上完成工作,而不会遇到上述问题。

是的,所有线程都有几个打开的连接,而且由于当前数据库必须交换硬盘上的一些数据,因此对服务器的一些请求的速度非常慢(使他们拥有更长的开放池)问题主要在于我们的应用程序是为非常高的多线程(客户要求)而设计的而且我们的测试服务器没有这些资源。无论如何,感谢您的帮助是的,所有线程都有几个打开的连接,而且由于当前数据库必须交换硬盘上的一些数据,对服务器的一些请求变得非常慢(使它们的开放池更长)问题主要在于我们的应用程序是为非常高的多线程(客户要求)而设计的,而我们的测试服务器没有这些资源。无论如何,感谢您的帮助。请注意,我知道,每个线程都有自己的上下文(此外,它主要是读取操作)请注意,我知道,每个线程都有自己的上下文(此外,它主要是读取操作)