公司的所用的oracle数据库,因为数据增、删比较频繁,导致索引产生碎片,性能下降,并占用空间不能有效释放。由于目前暂时找不到合适的DBA对数据库进行优化,于是写了一个简单的脚本来定期重建所有的索引。本文提到的脚本创建一张表用来记录索引重建的日志,建立一个存储过程,并建立一个
job
来每
7
天调用一次该存储过程。
声明:因为我不是DBA,个人感觉这个的方法不正规(不是best practice),仅供没有更好办法的时候参考。
-----------------------------------------
--
因为系统中很对表的数据变化比较频繁,导致索引空间膨胀,系统性能下降
--
因此需要定期重建系统中的索引,以优化性能,回收空间
--
这项维护性工作通过
Oracle
的
job
进行调度
--
建立一张表,存放索引重建日志
CREATE
TABLE
tmMTNLog
(
fLogDate
char
(
19
),
fLogMsg
varchar2
(
4000
)
);
--
首先创建一个存储过程,该存储过程重建所有的索引
CREATE
OR
REPLACE
procedure
mtn_rebuild_all_idx
as
......
Oracle Data Integrator支持:基于数据的集成,基于事件的集成和基于服务的集成。它支持大容量数据间的高效转换,通过Changed Data Capture特性支持对事件的实时处理,能够向Oracle SOA Suite提供数据服务。它同时提供了对数据完整性的支持,包括并发性和数据的准确。
该产品的主要创新点是:E-LT模式,声明式设计,知识模块,满足了集成平台对性能,灵活性,可插拔模块的需求。E-LT方式的特点是把数据转换的Where, How分开。它先把抽取出的数据载入目标数据库中,利用本原的SQL优化功能进行数据转换。
与传统的ETL设计不同的是,Oracle Data Integrator使用基于声明式的设计。它采用"Interface"的方式,来定义转换规则,包括源数据,转换,目标数据。这样的好处是开发者关注的是集成规则,不而潜在的技术实现。知识模块实现了集成流程是如何实现的。一个知识模块是对特定集成任务的代码模版,这个代码是独立于接口的。在设计时阶段,开发者创建元数据描述集成过程。在运行时,引擎负责把这些元数据和知识模块绑定起来成为一个可执行体。
Oracle Data Integrator支持基于消息的集成。它能够与JMS构成消息发布订阅关系。Oracle Data Integrator通过Data Service, Transfor ......
http://www.chinaitbbs.com/redirect.php?tid=63554&goto=lastpost
Oracle Data Integrator 中的知识模块 (KM) 是在不同技术间实施可重用转换和 ELT(提取、加载和转换)策略的组件。例如,通过从 Oracle 数据库 10g 中的更改数据捕获提取数据,而后将转换的数据加载到 Oracle 数据库 11g 中已分区的事实表中,或者从 Microsoft SQL Server 数据库创建基于时间戳的提取,而后将该数据加载到 Teradata 企业数据仓库中。 KM 的强大在于其可重用性和灵活性 — 例如,您可以针对某个事实表开发和实施加载策略,然后只需点击鼠标,即可将此加载策略应用到所有的事实表。如果您调整 ELT 策略以适应不断变化的业务要求并修改相关 KM,则所有使用该 KM 的接口都将继承该更改。您可以混合搭配不同的编程语言、类型和样式(本地 RDBMS SQL、脚本编写语言,如 Jython 或 JavaScript,甚至是 Java)。这使得这些 KM 变得极为灵活。这种创新方法称为 Oracle Data Integrator 声明式设计,可比传统的 ELT 方法快 10 倍。
Oracle Data Integrator 附带了各种预定义的 KM。您可以直接在 ELT 接口(等同于 Oracl ......
Oracle数据库资料收藏
1、UNIX基本培训 -
[fjlin]
2、AIX入门与提高(1)-中文 -
[richard_he]
3、PL/SQL上课记录 -
[jxdco]
4、[分享]2005年IBM原厂的AIX培训资料
- [fsm]
5、Oracle入门 让学习更轻松 -
[migrator]
6、我看得懂的Oracle管理器OEM操作指南 -
[tiren]
7、一些平时收集的Oracle的资料 -
[ll7777]
8、Oracle 9i for Linux
資料庫管理實務(台湾原版). - [unico]
9、ORACLE 数据库实用附录 -
[hawker60]
10、赵伯山的《Oracle
9i中文版基础培训教程》[pdf] - [leoking_z]
11、推荐一个不错的007笔记 -
[sunnyanita]
12、ORACLE函数大全 -
[btcity]
13、Oracle9iR2在红帽高级服务器版2.1下的安装
- [wx2523]
14、Oracle 9i SQL手册 -
[cadsn]
15、表与索引专题总结(附件给出了具体实例) -
[oracle_gao_dba]
16、详解UNIX和WINDOWS2000上的ORACLE的差异
- [zhangjingking]
17、数据库备份方案 -
[wx2523]
18、分享 1Z0-007 SQL 整理笔记 -
[error21h]
19、Installing Oracle 9iR2
on Red Hat 9 - [ern]
20、为 CNOUG 做贡献了----《ORA8I
DBA 宝典》电子版 - [b ......
create or replace type list_agg as object
(
total varchar2(4000),
static function ODCIAggregateInitialize(sctx IN OUT list_agg)
return number,
member function ODCIAggregateIterate(self IN OUT list_agg,
value IN varchar2) return number,
member function ODCIAggregateTerminate(self IN list_agg,
returnValue OUT varchar2,
flags IN number)
return number,
member function ODCIAggregateMerge(self IN OUT list_agg,
ctx2 IN list_agg) return number
);
create or replace type body list_agg is
static function ODCIAggregateInitialize(sctx IN OUT list_agg) return number is
begin
sctx := list_agg(null);
return ODCIConst.Success;
end;
member function ODCIAggregateIterate(self IN OUT list_agg,
value IN varchar2) return number is
begin ......
SELECT substr(sys_connect_by_path(db_engname,'->'),3) ,sys_connect_by_path(db_engname,'->')
from zkr_db
CONNECT BY PRIOR db_id=parent_id
START WITH parent_id='0'
select db_id ,db_engname,level
from zkr_db
start with parent_id = '227' connect by prior db_id=parent_id ......