海量空间数据库实施策略-栅格数据 6

· 栅格切片尺寸

在导入栅格到ArcSDE中的时候[1],从《II.栅格数据模型》中可以知道,栅格实际上是被切割成一块块存储在SDE_BLK_ 表中,每条记录代表了一个切片。默认这个切片的尺寸大小是128×128像素,对于这个切片在数据库中的存储在这里进行一下更深入的讨论。

如果我们在导入栅格的时候选择的压缩方式为None或者默认的LZ77,从上面的《压缩格式与压缩比》章节中可以知道,数据(基本)没有被压缩;对于没有压缩的数据,128×128像素大小的一个栅格切片应该包含16K个像素;而对于最常见的8 Bit深度的栅格,每个像素占据1个字节;因此,这个切片将在数据库中占据16 KB存储空间。

而如果采用Oracle,默认创建数据库的数据块大小为8K,那么上面的切片占据了两个数据块,Oracle如果要读取这个切片就需要做2个I/O操作。在数据库中,I/O操作尽量需要减少,因此,所有都采用默认的设置可能并不符合实际的情况,特别是在数据量非常大的情况下。

· 其它存储格式

除了最常见的TIFF、JPEG等格式,栅格数据还可以以一些更专业的压缩格式进行存储,比如MrSID等,这些格式有惊人的压缩比和出色的读取效率。因此,在获取一些特殊的栅格存储格式的时候,最好可以比较一下它们和无压缩栅格的效率。

比如这里有一个17M的MrSID数据,将其导出为未压缩的TIFF后,两者的小范围数据预览比较如下:

压缩格式/压缩比

数据量

某小范围预览耗时

MrSID

17M

0.22秒

TIFF

622M

0.06秒

可见如MrSID格式有非常高的压缩比,同时数据访问的效率也不错。

[1] 另外在Tiled TIFF中也会存在切片

你可能感兴趣的:(oracle,数据库,存储,tiff)