欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle如何计算RasterDataset和RasterCatalog的存储大小

程序员文章站 2024-01-23 12:34:16
...

数据库存储原理 在 Oracle,一个栅格块表的 BLOCK_DATA 列作为 BLOB 数据类型存储像素的二进制数据。 在 Oracle BLOB 数据存储包含 BLOB 列、 LOB 段和 LOB 索引。启用推荐的默认行内存储时,如果存储在 BLOCK_DATA BLOB 列中的二进制数据超过 3,964 的字节

数据库存储原理

在 Oracle,一个栅格块表的 BLOCK_DATA 列作为 BLOB 数据类型存储像素的二进制数据。

在 Oracle BLOB 数据存储包含 BLOB 列、 LOB 段和 LOB 索引。启用推荐的默认行内存储时,如果存储在 BLOCK_DATA BLOB 列中的二进制数据超过 3,964 的字节,然后它会存储在 LOB 段。LOB 段中使用 LOB 定位器的 BLOCK_DATA 列引用。

下面的方法描述了如何确定栅格数据集或光栅目录块表、 查找与那块表 BLOCK_DATA 的列相关联的 LOB 段,然后通过查询 user_segments 找到总存储大小。

ArcGIS栅格存储

在ArcGIS9和ArcGIS10版本中,栅格数据的默认存储仍然是Blob存储。BLOB存储主要包括矢量表和栅格表的存储,矢量表的存储与上面所说的BLOB存储方式类似,栅格表主要包括附录信息表、栅格表、波段表和分块表。

Oracle如何计算RasterDataset和RasterCatalog的存储大小

Oracle如何计算RasterDataset和RasterCatalog的存储大小

Oracle如何计算RasterDataset和RasterCatalog的存储大小

l Business表:称作业务表,业务表对客户端透明,客户端与栅格数据的交互通过业务表即可完成。业务表是用于存储属性的 DBMS 表,并且通过添加栅格列而在空间上启用。带有栅格列的业务表是栅格数据集或栅格目录。栅格数据集只能有一个业务表行,而栅格目录可以有多个。

l F表:称作封装边界要素表,属于支撑表,这个表中存储了栅格数据的封装边界的几何信息。可以参考矢量表BLOB存储的介绍。

l S表:称作封装边界索引表,属于支撑表,这个表中存储了栅格数据的封装边界的几何索引信息。可以参考矢量表BLOB存储的介绍。

==================影像支持表=================

l AUX表:栅格辅助表用于存储影像色彩映射表、影像的统计数据以及可选位掩码(用于影像叠加和镶嵌)。 ArcSDE 会自动在栅格辅助表中存储所有现有影像的元数据,例如影像的统计数据、色彩映射表或位掩码。

l RAS表:称作栅格表,属于支撑表,记录栅格数据的描述信息。

l BND表:称作波段表,属于支撑表,记录栅格数据的波段信息。每幅栅格数据的每一个波段占一条记录。

l BLK表:称作栅格分块表,属于支撑表,栅格块表用于存储影像各波段的实际影像数据。每个波段的像元值都以分块的形式存在该表中。加载栅格数据时,ArcSDE利用分块参数将栅格(及金字塔)划分为若干块,每一块都以BLOB类型存储于该表中。

测试数据

使用ArcCatalog创建一个RasterCatalog,导入影像

Oracle如何计算RasterDataset和RasterCatalog的存储大小Oracle如何计算RasterDataset和RasterCatalog的存储大小

查看存储容量

获得影像对象的rastercolumn_id

Oracle如何计算RasterDataset和RasterCatalog的存储大小

根据 rastercolumn_id,查找与块表相关联的 LOB 段。

Oracle如何计算RasterDataset和RasterCatalog的存储大小

一旦 LOB Segment名称知道,然后查询 user_segments 表,可能得到容量大小。在下面的示例查询返回大小 MB 的块表和关联的 lob 段中。

Oracle如何计算RasterDataset和RasterCatalog的存储大小