本文下面内容将以Oracle10g为例,详细介绍如何使用SDE管理多个表空间,如何将不同的数据存到相应的表空间下。
当使用SDE管理较大的数据量时,可先将数据类型、用途等进行分类,然后分别存储在不同的表空间里;这样不仅对管理的数据进行了合理的规划和分类,同时由于这些表空间可由SDE用户或其他用户统一管理,因此又有效地减轻了SDE本身的负荷。
1:创建表空间
在Oracle中创建存储数据的表空间TEST。
createtablespaceTESTdatafile'E:\oracle\product\oradata\azuay/TEST.dbf'size160mautoallocate;
2:修改DBTUNE表参数
如下图所示,通常情况下在ArcCatalog中向SDE复制数据时,数据默认是进入到Config.Keyword列为“DEFAULTS”的表空间中,即SDE默认的表空间。只要在SDE中创建TEST关键字,并建立其与TEST表空间的关联,就可以实现用SDE用户来管理TEST表空间。
通过Oracle10g客户端或PL/SQL打开SDE.DBTUNE表,如下图所示。SDE表空间对应的关键字“DEFAULTS”在DBTUNE表中有详细的说明,包括有关的参数;因此,在SDE中创建TEST关键字,只需在DBTUNE表中按DEFAULTS的参数格式和内容,创建TEST的参数表述信息即可。
使用sql语句创建TEST表,该表与dbtune表结构一样,但是只包含DEFAULTS的参数信息
createtable SDE.TESTasselect*from sde.dbtune where keyword='DEFAULTS'
使用sql语句更新KEYWORD列值为“TEST”。
update SDE.TESTset keyword='TEST'
最为重要的一步是对CONFIG_STRING列值的修改。由于DEFAULTS关键字CONFIG_STRING列的信息是在创建SDE表空间时建立的,其默认关联的是SDE表空间,因此在其信息中并没有表空间的信息。如下图所示
TEST关键字是后来创建的,因此在其参数信息的CONFIG_STRING列中需要加上表空间的信息。如下图所示
使用sql语句
update sde.TESTset CONFIG_STRING=concat('TABLESPACE TEST ',to_char(CONFIG_STRING))wheresubstr(to_char(config_string),1,7)='PCTFREE'
更新CONFIG_STRING列的值。注意:并非所有的CONFIG_STRING列值都需要更新,只要将现有列值中是以PCTFREE开头的列更新即可。
使用sql语句
insertinto sde.dbtuneselect*from sde.TEST
将TEST表中的信息导入到DBTUNE表中
到此步骤为止,完成了对DBTUNE表的修改,可以实现SDE用户对多表空间的管理了。
SDE用户管理多表空间
在ArcCatalog下向SDE中复制数据如下图
导入的数据表都在TEST表空间下。
