应用程序的单个数据库连接

时间:2013-05-28 11:21:43

标签: database

我的同事正在捍卫开放应用程序的单个数据库连接比使用池打开和关闭它更好,更快。

他有一个ApplicationStart方法,他可以在Application('db')进入,并在整个应用程序中实现此连接。这个应用程序主要包含只读数据。

我如何说服他?

1 个答案:

答案 0 :(得分:5)

这在很大程度上取决于这里的“应用程序”。如果这是一个在单个线程上工作的客户端应用程序并按顺序执行,那么坦率地说,两种方式都没有任何明显的区别。在这种情况下,如果您使用池,它基本上是一个1项的池,并且从池中打开连接几乎是瞬时的(当然与网络IO相比并不明显)。在那种情况下,我仍然说使用内置池,因为它会在您更改场景时避免假设。

但是,如果您的应用程序使用多个线程,或者通过任何其他机制一次执行多个操作(async)等,则使用单个连接将非常糟糕;要么它将彻底失败,要么你需要围绕连接进行同步,这将严重限制你。请注意,任何服务器端应用程序(任何类型的Web应用程序,WCF服务,SOAP服务或套接字服务)都会对他的想法做出非常糟糕的反应。

也许说服他的主要方式很简单:请他证明。要求进行可重复的测试/演示,以显示这种差异。