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

来源:互联网 发布:自制单片机小说阅读器 编辑:程序博客网 时间:2024/04/29 05:51

矢量数据存储类型策略

ArcSD针对不同的数据支持不同的矢量存储类型,下图是具体的每个数据库所支持的存储类型:

image

具体每个存储类型具体代表什么东西,大家可以查看http://blog.csdn.net/liufeng1980423/category/779418.aspx

里面有针对oracle数据库的各种数据存储类型的详细介绍。

不同的存储类型的比较大的一个却别是所占有的存储空间不同,下面是以oracle数据库上三种存储类型所占有空间大小的对比:

image

其中以ST_GEOMETRY存储类型所占有的空间最小,次之是SDELOB,最后才是oracle的SDO_GEOMETRY,实际上三种存储方式在oracle的后台都是BLOB进行存储的,只不过ST_GEOMETRY和SDELOB方式对存储的二进制数据进行了压缩和加密处理而已。

既然在oracle数据库中后台的存储都是BLOB方式存储,那我们接下来就介绍一下BLOB的相关策略,在oracle数据库中BLOB的存储有三种策略:

第一种是表的BLOB列和常规数据类型的列放在一个快中,前提是BLOB的大小小于3192bytes,并且BLOB的ENABLESTORAGE IN ROW属性在ON的情况下,图示如下:

image

第二种是如果BLOB的列的大小大于3192bytes并且小于12个CHUNK,ORACLE会把BLOB列单独存储到一个segment中,并且通过LOB Locator进行查找,图示如下:

image

第三种是BLOB列的大小大于12个CHUNK,那oracle先通过一个LOB Locator先查到到Lob Index对象,然后再通过Lob Index查找到真正存储BLOB数据的Segment。图示如下:

image

从上面的三种情况可以看出来,第一种情况访问一个BLOB数据只需要读取一个块,而第二种情况需要读取两个块,而第三种情况需要读取三个块,当然是第一种情况的访问速度是最快的。那3192个bytes到底能存储多少点串呢,这个我们可以粗略的计算一下:

一个点是使用两个double来进行储存,一个double占用8个bytes,那一个点需要16个字节,除了这个因素,使用SDELOB和ST_GEOMETRY存储的数据会压缩成源数据的1/3,因此计算公式如下:

存储的点串数量=3192/16 * 3 = 600,极限情况下是存储600个点。估计大部分的数据不会超过600个点串的。所以为了能够实现第一种情况,建议把ENABLESTORAGE IN ROW选项打开,当然这也是默认的选项。

除了ENABLESTORAGE IN ROW这个选项,BLOB存储还有以下几个比较重要的控制参数,

1. CACHE参数,用来控制读取到的BLOB是否先放到Oracle的SGA区域中,默认该选项是打开,我们也推荐打开这个选项。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 北京怡瑞被骗后怎么办 玩滑板睾丸碎了怎么办 雄鸽不会踩蛋怎么办 玩滑板蛋碎了怎么办 精子在精囊满了怎么办 孩子的睾丸一大一小怎么办 肾阳虚早射该怎么办 有奶水吸不出来怎么办 苹果mac商店里没有软件怎么办 战地1安装包损坏怎么办 战地4db显示数据异常怎么办 战地1亚服没人怎么办 战地一加载太慢怎么办 饥荒手机版怪物跟人就打狗包怎么办 电脑文件损坏开不了机怎么办 黑魂1武器损坏怎么办 系统注册表文件丢失或损坏怎么办 steam申诉填错信息怎么办 手机玩游戏老是闪退怎么办 美剧推荐不能看怎么办 最角两边有点烂怎么办 独显禁用了黑屏怎么办 目标文件夹访问被拒绝怎么办 苹果mac电脑很卡怎么办 未能成功安装设备驱动程序怎么办 mac更新系统卡住了怎么办 电脑卡住了文件没保存怎么办 迅雷卸载重装列表没了怎么办 多个dts文件音量不同怎么办 武装突袭3锁帧怎么办? 武装突袭3没子弹了怎么办 电脑系统注册表文件损坏怎么办 武装突袭3受伤了怎么办 模板跟旺铺版本不符合怎么办 cpu散热硅胶没了怎么办 武装突袭3掉帧怎么办 苹果系统占用内存太大怎么办 电脑上的文件打不开怎么办 word文件打开是乱码怎么办 wps文件打开是乱码怎么办 电脑读tst文件乱码怎么办