0

我正在开发一个车队调度应用程序,并寻找一种有效的方法来存储地理位置之间的距离。

应用程序代码以二维数组的形式访问矩阵double[,]

为了使矩阵持久化,我目前将矩阵序列化为字符串。序列化后是这样的:

"1 4 9 8 3 6 \n
 5 6 7 9 3 6 \n
 34 4 5 6 6 7 \n"

然后将其存储在varchar(max)SQL Server 2008 数据库中的类型列中。但是,我想知道这个字符串是否会变得太大。

假设每个条目都有一位数字并且忽略空格和“\n”,理论上我可以在一个条目中存储大约 46000 个位置的距离(2 147 483 647 的平方根 - 的大小varchar(max))。这在我的上下文中就足够了。

这种方法有什么严重的缺点吗?将距离存储在一个额外的表中会更好吗,其中每一行包含两个位置之间的一个距离?

如果我们的应用程序的 100 个用户分别存储 1000 个位置,那么我将在这样的表中有 100000000 = 100 * 1000 * 1000 行......

4

1 回答 1

1

您可以将数组压缩成一个 blob 字段。那将是最有效的。与其序列化为字符串,不如压缩为字节数组,反之亦然。

于 2012-10-13T07:21:28.143 回答