多边形压盖问题oracle存储机制

存储到oracle中的数据使用ArcMap显示的时候怎么不是按照当初插入的顺序显示
已邀请:

刘锋

赞同来自: GIS知乎

【解决办法】:
oracle存储是以块为单位存储的,每个块默认是8k
创建一张表后,会分配一些块,假如分配了4个块,也就是32k,比如每个块录入两条记录,其实状态如下格式
OBJECTID=1和OBJECTID=2 在第一个块里面
OBJECTID=3和OBJECTID=4 在第二个块里面
OBJECTID=5和OBJECTID=6 在第三个块里面
OBJECTID=7和OBJECTID=8 在第四个块里面
oracle的查询是按照块号进行顺序扫描,即,1,2,3,4四个块,因此查出来的结果是OBJECTID=1,2,3,4,5,6,7,8
假如后续删除了OBJECTID=3和4的记录后,那第二个块就为空的了,下次如果再添加记录的时候,比如添加OBJECTID=9和10两条记录,Oracle会将块存储在第二个块里面(因为第二个块是空的了),不会再开辟第五个块。
其结构就变成
OBJECTID=1和OBJECTID=2 在第一个块里面
OBJECTID=9和OBJECTID=10 在第二个块里面
OBJECTID=5和OBJECTID=6 在第三个块里面
OBJECTID=7和OBJECTID=8 在第四个块里面
这个时候查询的话出来的结果是OBJECTID=1,2,9,10,5,6,7,8

要回复问题请先登录注册