Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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
Sql 何时将表拆分为多个数据库?_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 何时将表拆分为多个数据库?

Sql 何时将表拆分为多个数据库?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在建一个数据仓库。我需要从不同的来源获取数据并将其组合在一起,以便生成报告。我会做很多表格的连接。我说的大概是总共20个表,每个表的容量从100mb到5 GB不等 我想知道是否应该为每个表创建不同的数据库,因为每个表可能具有完全不同的数据集类型 例如,我可能有一个表,其中包含1GB关于汽车设计的数据。我将有另一个表,其中包含这些汽车的3 GB销售数据 将这些数据库分为不同的数据库是否合适 请告诉我在这种情况下需要什么额外的信息来为我提供建议。如果您计划在这些表之间建立外键关系(听起来您会这样

我正在建一个数据仓库。我需要从不同的来源获取数据并将其组合在一起,以便生成报告。我会做很多表格的连接。我说的大概是总共20个表,每个表的容量从100mb到5 GB不等

我想知道是否应该为每个表创建不同的数据库,因为每个表可能具有完全不同的数据集类型

例如,我可能有一个表,其中包含1GB关于汽车设计的数据。我将有另一个表,其中包含这些汽车的3 GB销售数据

将这些数据库分为不同的数据库是否合适


请告诉我在这种情况下需要什么额外的信息来为我提供建议。

如果您计划在这些表之间建立外键关系(听起来您会这样做),那么我会将其保存在一个数据库中。通常,我对完全不同的数据体使用不同的数据库


如果您将它们分开,那么当您尝试同时查询这两个数据库时,您将遇到一些有趣的挑战。

通常是为了分散I/O负载而拆分到不同的数据库中。在SQL Server中,如果要将I/O分布到多个磁盘组/磁盘,则可以在数据库本身中使用不同的文件组。在仓储场景中,您通常会处理用于数据库存储的SAN解决方案,根据您的场景,这些解决方案实际上并不关心性能,而其他解决方案如果计划得当,可能会为您提供额外的性能

您还可以使用表分区来查看不断增长的数据库,但在我看来,只要确保您有足够好的旧内存,它将比花费时间和精力担心数据库和文件更有益


我们在一个数据库文件中运行100gig数据库,性能非常出色。尽管很多频繁访问的数据都驻留在内存中,但通过良好的表结构和逻辑索引,您很快就会拥有一个响应性强的仓库。

如果存在逻辑或业务分离,请务必将它们放在不同的数据库中。这只是干净的数据应用程序开发。但是,如果要加入或合并不同的数据集,则可以通过使用单个数据库来节省一些开销和管理成本。总共20个表并不多(我正在开发一个有大约3700个表的系统,尽管大约1600个是审计)。请记住,只要您有一个合适的模型、索引等,SQL Server就可以扩展到TB级的数据


如果您关心仓库的性能,您可能会塞满RAM和硬盘驱动器的服务器。要正确利用硬盘,您需要考虑利用多个文件/文件组并适当分配表。

您是否计划将生产数据复制到仓库?@ssyladin谢谢!我想知道你是否能帮上忙,谢谢!我想知道你是否可以帮助+1来提到IO瓶颈。分离数据库使以后在这方面的管理变得容易,特别是因为数据集之间不需要连接。