一个SQL Server上的一个与多个数据库实例

如果我有两套系统使用的数据库表

  • 收集某些数据处理结果的表格。 大部分时间都会有很多INSERT操作。
  • Web应用程序用于生成页面和报表的表

对于这个问题,让我们假设表的集合是互斥的(也许有一些过程,将数据从第一个集合周期性地迁移到第二集合)。

我会看到以下两个设置之间的性能差异

  • 这两组表在一个数据库中
  • 这两组表是在同一个SQL服务器上的两个独立的数据库中

我会说一个单一的数据库。 您希望表的集合在备份/恢复状态,用户访问安全性,可用性等方面保持同步。 单独的表格还会增加镜像和日志传送解决scheme的问题。

因为您期望这种不同的I / O访问模式,所以您应该将表放在不同的文件组上。 然后,您可以将每个文件组部署到适合您的I / O模式的正确磁盘上。

在同一个数据库中同时使用两组表,一些争用点是共享的,如日志写入。 但是这不是你所描述的情况,因为只有应用程序的OLTP部分关心日志。

是。 您需要选项B,以便操作系统引用2个不同的磁盘文件。 一个DB可以优化写入,另一个可以读取。

或者,如果将表分割成单独的文件组/单独文件,则可以在单个数据库中完成相同的操作。

我会看到以下两个设置之间的性能差异

* The two sets of tables are in one DB * The two sets of tables are in two separate DBs on the same SQL 

服务器

否 – 除非将数据库分离到不同的硬盘上(即使我们没有其他信息,是否会影响性能也是值得商榷的)。

因此,从您的心理清单中删除您在本devise中应该考虑的内容。 这意味着问题是一个领域 – “我应该把它们放在同一个数据库还是不同的数据库”应该取决于它们的相关性。

如果我有两套系统使用的数据库表

 * Tables that collect results of some data processing. Most of the time 

获得大量的INSERT操作。 * Web应用程序用于生成页面和报告的表格

对于这个问题,让我们假设表的集合是互斥的(也许有一些过程,将数据从第一个集合周期性地迁移到第二集合)。

我不明白你的意思是“这些表格是相互排斥的”。 从描述来看,这些表似乎是相关的(并且通过“相关”,我的意思是它们应该在同一个数据库中组合在一起),因为它们可能会周期性地在它们之间迁移数据。 因此,我认为你可能需要一个数据库。