sql-server - 存储大型数值多维数组的最佳方式

标签 sql-server multidimensional-array

我有很多大型多维多维数组,我需要经常访问它们的值。我需要存储它们并从磁盘中检索它们。

存储数据的默认方式是 RDMS,但我不禁觉得这种情况很尴尬。人们不想制作一个包含 4096 列的表(此时 SQL Server Express 的 8K 行大小限制,我当前的 RDMS,成为一个问题)。将数组存储在表中的替代方法如下:

第1列是x坐标

第2列是y坐标

第3列是实际值

是一个很大的性能开销,因为原始数据集中的单个列或行(不是数据库的列或行)可能遍布整个硬盘驱动器,但也许这是正确的方法。

关于持久保存大型多维数值数据的最佳方法,您可以提供哪些经验?低于 10 秒的初始化和关闭性能问题我可能没问题。如果将所有数据拉入内存或将其全部写出需要几分钟时间,那就是个问题。

我的例子是二维的,有些数组有更多。

最佳答案

存储数组的一种可能性 - 如果您想使用 SQL Server - 是在 XML 字段中为每个数据库行存储一个数组。您应该拥有这样的优势,即存储或提取 XML 应该相对较快,并且在内存中运行的 XML 解析器应该比磁盘数组索引/单元格值查找检索更快。

关于sql-server - 存储大型数值多维数组的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22620159/

相关文章:

c++ - 二维数组,IF条件检查

sql-server - PetaPoco 在带有触发器的表上插入失败

sql-server - ADO 不传递第一个参数值

mysql - 用于排序排行榜的 SQL 查询

lua - 在lua中遍历二维数组

php - 基于数组在mysql表中添加多行

sql - 在表变量上创建索引

sql-server - SQL Server 2012 向后兼容 2008 的备份

java - 二维数组 4x5 矩阵

C++:动态增长二维数组