Moh*_*min 5 performance index sql-server partitioning
我们开发了一个数据量非常大但数据结构非常简单的系统。我们只有cellX,cellY,timeStamp和value列。
操作是:
cellX,cellY和timeStamp因为数据太大,查询需要索引,所以采用了这个方案:
cellX,cellY和timeStamp。timeStamp。跳过年份,只保留月份、日期和小时。我们能够将其保持在 16 位整数内。到目前为止,这一直运作良好。虽然我们在数据准备好后通知用户,但只要查询合理,延迟不会超过几秒。
但最近我们有机会获得更精确的数据,数据量增加了68 倍!。因此,现在我们有:
这可能是我们在一两年内能够收到更精确的数据。因此,数据量可能会再次显着增加。
问题是,我们使用的这个方案会持续吗?或者我们应该迁移到另一个方案,可能是另一个数据库系统离开SQL Server?
这三个维列cellX,cellY并timeStamp在本质上非常有规律。您可以通过f(x) = mx + c, 为某些整数x范围 ( 0, 1, 2, ..., X)定义所有这些
。
我使用过一个 30+ 十亿行的每月分区表,具有页面压缩和 10 年的历史。表模式相当简单,在 varchar 列和几个非索引列上有一个 datetime2(2) 聚集索引和 3 个非聚集索引。存储容量约为 2TB,性能相当不错。由于需要近乎实时的数据,因此使用 SqlBulkCopy 全天连续插入大约 1500 万行。
根据这个轶事,我相信 SQL Server 可以使用足够大的硬件来处理您预期的容量。话虽如此,我完全同意 @DamianoVerzulli 的观点,即由于您对延迟的容忍度,您的应用程序是成本较低的 NoSQL 解决方案的绝佳候选者。
| 归档时间: |
|
| 查看次数: |
1854 次 |
| 最近记录: |