【发布时间】:2014-01-22 12:55:44
【问题描述】:
我们正在采用一个(大型)遗留应用程序,该应用程序在任何地方都使用单个连接字符串,因此它们可以使用单个连接池。
计划是以服务为导向,将应用程序分解为更小的子应用程序。这些应用程序中的每一个都将托管在 IIS 中,我试图确定每个应用程序是否有应用程序池的好处,每个应用程序具有与该应用程序相关的不同身份,即 [Domain]\SVC_ApplicationA 而不是拥有所有应用程序池使用相同的标识,因此使用单个连接池。
虽然我们现在有一个 (SQL Server) 数据库,但随着我们迁移到这个新模型,我们的计划是从每个应用程序的原始数据库中的一个新架构开始。 dbo 模式将被弃用为旧版,并且为了访问 dbo,应用程序必须通过其各自模式中的对象(视图、过程等)来访问。需要注意的是,应用程序模式只允许访问其自己的模式或从 dbo 中的对象,而不是从其他应用程序模式。
如果每个应用程序都有自己的身份,我们可以独立地保护每个架构。我担心的是,如果我们有 50 个应用程序,我们将有 50 个连接池。这会对性能产生负面影响吗?我知道这是一个很重要的问题,但我真的只是在抽象地问。
谢谢!
【问题讨论】:
-
"...所有应用程序池使用相同的标识,因此使用单个连接池" - AFAIK 连接池不在 AppDomain 之间共享,因此您将与独立于应用程序的应用程序一样多的连接池身份。
标签: c# sql sql-server database iis