所以我正在研究数据仓库和分区,并且非常好奇在哪个规模上最有意义的是对密钥上的数据进行分区(例如,SaleDate
)。
教程经常提到您正试图将其分解为逻辑块,以便更新数据的可能性不大,从而导致服务中断。
因此,假设我是一家在特定美国州工作的中型公司。我做了很多关于SaleDate
的工作,通常每天都有成千上万的交易(有必要的交易细节,每个交易4-50个?),并且有大约5年的数据。我想查询并构建趋势信息;例如:
现在我的业务部门也想查询该数据,但我希望能够保持响应。
我怎么知道最好对这个数据集进行年,月,周,日等分区?通过测试每个场景,它是否只是我实际观察到的提供最佳响应时间?或者是否有某种规模可以用来了解我的分区最有效的位置?
编辑:我个人正在使用Sql Server 2012.但我很好奇其他人如何看待与核心概念相关的问题而不是实施(除非这不是你能做到的情况之一)这样做。)
答案 0 :(得分:3)
需要考虑的事项:
基于您可用的硬件和存储选项的许多选项,需要更多详细信息才能提出更具体的建议。
答案 1 :(得分:0)
这是一个Ms-SQL 2012数据库,每天有700万条记录,希望将数据库增长到6年的趋势分析数据。
分区基于YearWeek列,以整数表示(在201453到201501之后)。因此每个分区都有一周的交易数据。 这使得最多可以有320个分区,这些分区在一个方案中最多可以选择1000个分区。一个表中一个分区的最大大小现在是大约。 10 Gb,这比总的3Tb大小更容易处理。
分区方案中的新文件用于每个新年。 500Gb数据文件适合备份和删除。
当计算一个月的数据时,4个处理器并行工作以分别处理一个分区。