Howto: 在Oracle创建全局临时表的ArcSDE日志文件表

文章编号 : 32161
软件: ArcSDE 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1
操作系统: N/A
已邀请:

EsriSupport

赞同来自:

摘要:
ArcSDE geodatabases 使用日志文件表来记录选择的对象。Oracle 使用共享的日志文件体系结构时,在进行选择操作DBMS结构会创建两个表:SDE_LOGFILES、SDE_LOGFILE_DATA。 这些选择的对象sde_row_ids由应用程序写入到这些表中,供后面使用,这样可以更快的分析和处理相关信息。 有时候这边表的某些数据会变成孤立数据。例如客户端的应用程序异常关闭,这些表的数据就会变成孤立数据,只能通过数据库管理员(DBA)手动删除数据。 为了避免手动清理这些表,DBA或者SDE管理员可以选择重新创建这些表作为全局临时表。 全局临时表(global temporary tables) 全局临时表在 Oracle 中用于保留可用会话或事务持续时间的数据。一旦会话或事务完成,基于 (要保留或删除的行在提交) 表配置的临时表就会删除这些孤立行。 由于日志文件信息应用于会话的持续时间,使用全局临时表可以提供以下优点: 1:当会话终止时的孤立行会及时删除 2:生成较少的重做日志信息 此外,在临时表空间中创建这些段(segments)和他们的索引,不会影响备份和恢复过程。 全局临时表不支持或维护 Oracle 表统计数据 ; 因此,为已启用Oracle实例验证动态采样的性能是非常重要。
内容: 提供说明描述了为每一个DBMS框架(schema)如何重做日志文件表,如全局临时表的每个数据库管理系统 (DBMS) 架构目前拥有的日志文件表。
步骤还提供了使用事先不存在的永久SDE日志文件表(no pre-existing permanent log file tables)为新用户创建全局临时表。
1:删除这些日志文件表
DROP TABLE sde_logfiles CASCADE CONSTRAINTS;
DROP TABLE sde_logfile_data CASCADE CONSTRAINTS;
使用事先不存在的永久SDE日志文件表(no pre-existing permanent log file tables)为每一个新的DBMS用户授予创建表和创建序列的权限
2:创建全局临时表
每一个DBMS框架的SDE_LOGFILES 、SDE_LOGFILE_DATA表以及索引都会被创建。
CREATE GLOBAL TEMPORARY TABLE sde_logfiles
(
logfile_name VARCHAR2(256) NOT NULL ENABLE,
logfile_id NUMBER(*,0) NOT NULL ENABLE,
logfile_data_id NUMBER(*,0) NOT NULL ENABLE,
registration_id NUMBER(*,0) NOT NULL ENABLE,
flags NUMBER(*,0) NOT NULL ENABLE,
session_tag NUMBER(*,0) NOT NULL ENABLE,
logfile_data_db VARCHAR2(32),
logfile_data_owner VARCHAR2(32),
logfile_data_table VARCHAR2(98),
column_name NVARCHAR2(32)
)
ON COMMIT PRESERVE ROWS;
CREATE UNIQUE INDEX sde_logfiles_pk ON sde_logfiles (logfile_id);
CREATE UNIQUE INDEX sde_logfils_uk ON sde_logfiles(logfile_name);
CREATE UNIQUE INDEX sde_logfiles_uk2 ON sde_logfiles (logfile_data_id);
CREATE GLOBAL TEMPORARY TABLE sde_logfile_data
(
logfile_data_id NUMBER(*,0) NOT NULL ENABLE,
sde_row_id NUMBER(*,0) NOT NULL ENABLE
)
ON COMMIT PRESERVE ROWS;
CREATE INDEX sde_logfile_data_idx1 ON sde_logfile_data (logfile_data_id, sde_row_id);
CREATE INDEX sde_logfile_data_idx2 ON sde_logfile_data (sde_row_id);
3:启用动态采样
全局临时表没有进行统计计算。Oracle的CBO(Cost Based Optimizer成本优化器)利用统计信息来确定最有效的访问路径。启用动态样本统计信息,确保CBO选择最佳的执行路径。Oracle10g的默认值也是建议的最小值是2.
4:只适用于没有永久SDE日志文件新的数据库用户
创建SDE_LOGFILE_LID_GEN序列
CREATE SEQUENCE SDE_LOGFILE_LID_GEN INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E27 MINVALUE 1 NOCYCLE CACHE 20 NOORDER;
撤销用户创建序列权限。
只读的用户创建表的权限也可被撤销。




创建时间:2006-11-16
最近更新: 2010-01-27


原文链接
http://support.esrichina.com.cn/2006/1116/724.html

要回复问题请先登录注册