好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

查询Oracle数据库存储的要素类、空间索引、属性索引大小

有些用户会有这样的疑问,我以文件形式(不管是GDB还是Shapefile)都是有物理大小的,但是我怎么知道在ArcSDE数据库里面存储某个图层的物理大小,以及相关的索引大小? 关于ArcSDE内部的索引机制可以参考 http://blog.csdn.net/linghe301/archive/2011/03/23/


有些用户会有这样的疑问,我以文件形式(不管是GDB还是Shapefile)都是有物理大小的,但是我怎么知道在ArcSDE数据库里面存储某个图层的物理大小,以及相关的索引大小?


关于ArcSDE内部的索引机制可以参考


http://blog.csdn.net/linghe301/archive/2011/03/23/6269847.aspx



举个例子:假如我查询一个要素类名称为:FW2的图层


1:查询该图层的属性索引名称


SQL> select index_name from user_indexes where table_name='FW2'; INDEX_NAME ------------------------------ R541_SDE_ROWID_UK SYS_IL0000085622C00027$ A372_IX1


由上面可以获得R541_SDE_ROWID_UK为属性索引名称


2:查询该属性索引的存储大小


SQL> select bytes from user_segments where segment_name='R541_SDE_ROWID_UK'; BYTES ---------- 393216 SQL> select bytes/1024/1024 as property_Index_MB from user_segments where segment_name='R541_SDE_ROWID_UK'; PROPERTY_INDEX_MB ----------------- .375


3:查询该图层的存储大小


SQL> select bytes/1024/1024 as table_MB from user_segments where segment_name='FW2'; TABLE_MB ---------- 6 SQL> select bytes from user_segments where segment_name='FW2'; BYTES ---------- 6291456


4:查询空间索引的存储大小


首先获得该图层的geom_id

SQL> select geom_id from sde.st_geometry_columns where table_name='FW2'; GEOM_ID ---------- 440

根据该ID获得空间索引的名称,一般空间索引名称以 'S $_IX1'


SQL> select bytes/1024/1024 as SpatialIndex_MB from user_segments where segment_name='S440$_IX1' SpatialIndex_MB ---------- 4 SQL> select bytes as SpatialIndex_MB from user_segments where segment_name='S440$_IX1'; SpatialIndex_MB ---------- 4194304

查看更多关于查询Oracle数据库存储的要素类、空间索引、属性索引大小的详细内容...

  阅读:48次