gpt4 book ai didi

sql-server - 需要建议 : SQL Server DB Architecture for Large Database

转载 作者:行者123 更新时间:2023-12-04 01:40:05 26 4
gpt4 key购买 nike

大家好!

我的客户目前有一个 SQL Server 数据库,它每天执行 3-4 百万次插入、大约同样多的更新和更多的读取。当前数据库的布局很奇怪恕我直言:传入的数据转到“当前”表,然后将夜间记录移动到相应的月表(即 MarchData、AprilData、MayData 等),它们是 Current 表的精确副本(schema-wise i意思)。读取是从 UNION 所有月度表和当前表、插入和更新仅对当前表完成的 View 完成的。有人向我解释说,将数据分成 13 个表是因为所有这些表都使用单独的数据文件,并且这些数据文件被写入 13 个物理硬盘驱动器。所以每个表都有自己的硬盘驱动器,据说可以加快 View 性能。我注意到的是,夜间记录移动到每月表(在晚上每 2 分钟完成一次,8 小时)与完整备份和数据库开始爬行、网站超时等同时发生。

我想知道这种方法真的是最好的方法吗?或者我们可以考虑不同的方法吗?请注意,数据库大约有 300-400 GB,并且每天增长 1.5-2 GB。我们经常将超过 12 个月的记录移至单独的数据库(存档)。

非常感谢任何见解。

最佳答案

如果您使用的是 MS SQL Server,请考虑 Partitioned Tables and Indexes .

简而言之:您可以按某个值对行进行分组,即按年和月。每个组都可以作为具有自己索引的单独表进行访问。因此,您无需访问所有行即可列出、汇总和编辑 2011 年 2 月的销售额。分区表使数据库复杂化,但在表非常长的情况下,它可以显着提高性能。它还支持“文件组”将值存储在不同的磁盘中。

这个 MS 制作的解决方案看起来与您的非常相似,除了一件重要的事情:它不会在一夜之间移动记录。

关于sql-server - 需要建议 : SQL Server DB Architecture for Large Database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5440106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com