阅读:2433回复:2
ArcSDE存储空间分析(以Oracle为例)
<FONT size=2><FONT face="Times New Roman">1 </FONT><FONT face=宋体>问题引出</FONT><BR><FONT color=#000000><FONT face=宋体>对于提高</FONT><FONT face="Times New Roman">ArcSDE</FONT><FONT face=宋体>的性能,其中的一项内容为(</FONT><FONT face="Times New Roman">Oracle</FONT><FONT face=宋体>一直推荐的、</FONT><FONT face="Times New Roman">ESRI</FONT><FONT face=宋体>强力建议的)把</FONT><FONT face="Times New Roman">index</FONT><FONT face=宋体>和</FONT><FONT face="Times New Roman">table</FONT><FONT face=宋体>分开来存储,分不同的磁盘存放。对于</FONT><FONT face="Times New Roman">SDE</FONT><FONT face=宋体>来说,在</FONT><FONT face="Times New Roman">SDE.DBTUNE</FONT><FONT face=宋体>表中设置</FONT><FONT face="Times New Roman">config_string</FONT><FONT face=宋体>来设置。(这里暂时对ArcSDE调优问题不详细展开</FONT><FONT face=宋体>)</FONT></FONT><BR><FONT color=#000000><FONT face=宋体>这样一来,就产生了一个问题,对于一个一个</FONT><FONT face="Times New Roman">featrue class</FONT><FONT face=宋体>来讲,导入数据库后,产生的表和索引是怎样存储的呢,分别占用多大的空间呢?</FONT></FONT></FONT><BR>
|
|
1楼#
发布于:2007-12-27 20:53
<DIV>2 测试环境<BR>Windows 2000 advanced server; oracle 9i ;ArcSDE 9.0<BR>图层 BUILDING:(polygon)大小,24.6MB。</DIV><BR both">
<DIV>3 分析过程 <BR>A: ArcCatalog 导入一建筑物图层。分别查询关于这个图层所有表的磁盘空间占用情况。<BR>默认参数(不指定GRID SIZE)<BR>B:查看表大小:<BR>select owner ,table_name, NUM_ROWS, BLOCKS*AAA/1024/1024 "Size M", EMPTY_BLOCKS, LAST_ANALYZED from dba_tables where table_name= XXX ; <BR> Here: AAA is the value of db_block_size ; oracle 默认为2048 。本次测试为8096<BR> XXX is the table name you want to check<BR>C:查看index大小:<BR>select sum(blocks)*AAA/1024/1024 from dba_extents t where t.owner=OEWNER' and t.segment_name=XXX<BR> Here: AAA is the value of db_block_size ; oracle 默认为2048 。本次测试为8096<BR>XXX is the index name you want to check<BR>实际上这种查询也应该可以对表大小进行查询,只要t.segment_name指定表名称即可。只不过这样查询出的结果比上一种方法查询出的结果稍大。不知道为什么 <IMG src="http://bbs.esrichina-bj.cn/ESRI/images/smilies/smile.gif" border=0><BR><BR>注意:如果查询结果为空的话,需要事先对表进行分析(analyze)。<BR>方法:sqlplus user/pass<BR>Analyze table table_name compute statistics;<BR>Analyze index index_name compute statistics;</DIV> <DIV class=t_msgfont>4 结果<BR>对于ArcSDE的一个featrue class 而言,导入数据库后生成了三张table,7个index。<BR>分别为:(假设在sde.layers中序号为100)<BR>名称 类别 索引列 存储空间大小<BR><BR>BUILDING Table 2 M<BR>-> A100_IX1 Index Shape 0.8 M<BR>->index 162_SDE_ROWID_UK Index OBJECTID 0.8 M<BR><BR>F100 Table 9<BR>->F100_AREA_IX2 Index AREA 2 M<BR>->F100_LEN_IX3 Index LEN 2 M<BR>->F100_UK1 Index FID 0.8 M<BR><BR>S100 Table 6 M<BR>->S100_IX1 Index GX,GY,EMAXX,EMAXY,EMINX,EMINY,SP_FID 8 M<BR>->S100_IX2 Index SP_FID 3 M<BR>5 结论<BR>对于一个24M 的图层,导入数据库后,总计的存储空间大约为34.4M。<BR>注意,默认情况下,使用的空间索引的GRID 为一级。如果这个参数变化 会对S100和S100索引的大小产生非常巨大的影响。</DIV> <DIV class=t_msgfont>对于整体来说,数据的存储空间增加了40%,表和索引所占的比例大致为50:50。<BR><BR>在创建ArcSDE时,首先创建两个存储在不同的磁盘(不是逻辑磁盘,最好是物理分离的磁盘)表,作为ArcSDE表和索引的默认表空间。<BR><BR>由于测试图层的不同,数据库参数的设置不同,ArcSDE存储空间会有所不同。现在的数据库磁盘空间已经不再是一个瓶颈(随便哪个数据库都会有100GB),对于一般的应用来说,已经足够了。<BR></DIV> |
|
2楼#
发布于:2008-04-01 09:24
看的有点点晕,不过还是很受益,谢谢了<img src="images/post/smile/dvbbs/em02.gif" />
|
|