![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 76
HenryLu
KEEP LEANING DATABASE ,DATAWAREHOUSE,JAVA,C/C++,
展开
-
创建Fast Refresh的materialized view时的问题
今天帮人解决了一个物化视图快速刷新的问题,简单记录一下解决方法。问题倒是不复杂,就是一个普通的聚集物化视图的快速刷新问题,下面通过一个例子模拟一下:SQL> CREATE TABLE T AS SELECT * FROM DBA_FREE_SPACE;表已创建。SQL> CREATE MATERIALIZED VIEW LOG ON T WITH ROWID, SEQUENCE (原创 2013-10-09 15:14:55 · 657 阅读 · 0 评论 -
Oracle 利用rowid快速删除大表中部分数据
问题: 我们在负责数据仓库的时候,都会有一个中间表(ODS层)来存放部分粒度很细的数据,虽然中间表不是归档表,但是由于每日的业务数据量庞大,每个中间表也会存放有几千万条数据,业务时间跨度达到一个月。而且业务数据提交的是不会停止的,因此,我们在对中间表进行数据更新的时候都会先删除再插入数据,那么问题来了:如何才能快速的删除大表的部分数据。方案: 利用Oracle自带的伪列ROWID进原创 2015-03-03 09:43:00 · 2823 阅读 · 0 评论 -
Oracle的备份与恢复
Oralce数据库备份与恢复方法:冷备份(完全备份,安全完整)导出/导出备份(通过EXP/IMP完成,部分备份)热备份(归档模式下备份)(一)冷备份冷备份是一种物理备份方式冷备份的备份对象是整个数据库冷备份的数据库必须是关闭状态冷备份使用操作系统命令1、备份对象:数据文件,控制文件,参数文件,口令文件,重做日志文件。2、冷备份步骤:原创 2015-01-25 16:15:09 · 310 阅读 · 0 评论 -
ETL的过程原理和数据仓库建设
1.引言数据仓库建设中的ETL(Extract, Transform, Load)是数据抽取、转换和装载到模型的过程,整个过程基本是通过控制用SQL语句编写的存储过程和函数的方式来实现对数据的直接操作,SQL语句的效率将直接影响到数据仓库后台的性能。 目前,国内的大中型企业基本都具有四年以上计算机信息系统应用经验,积累了大量可分析的业务数据,这些信息系统中的数据需要通过搭建原创 2015-01-25 16:09:44 · 983 阅读 · 0 评论 -
导入导出 Oracle 分区表数据
--**************************** -- 导入导出 Oracle 分区表数据 --**************************** 导入导入Oracle 分区表数据是Oracle DBA 经常完成的任务之一。分区表的导入导出同样普通表的导入导出方式,只不过导入导出需要考 虑到分区的特殊性,如分区索引,将分区迁移到普通表,或使转载 2015-01-28 13:00:02 · 571 阅读 · 0 评论 -
exp/imp与expdp/impdp区别
在平常备库和数据库迁移的时候,当遇到大的数据库的时候在用exp的时候往往是需要好几个小时,耗费大量时间。oracle10g以后可以用expdp来导出数据库花费的时间要远小于exp花费的时间,而且文件也要小很多。 1.使用expdp要先在数据库中创建directory,并给相应的用户read,write权限.SQL>create dexp和empdp的区别irectory dm转载 2015-01-27 11:21:42 · 263 阅读 · 0 评论 -
ORA-00257:archive error. Connect internal only, until freed解决方案
今天登陆生产环境数据库,报了如下错误:ORA-00257:archive error. Connect internal only, until freed初步分析是归档日志满了,排查解决方案如下:原创 2014-08-15 09:41:41 · 1153 阅读 · 0 评论 -
Oracle 计算自然周和计算当周周一和周日的日期
计算传入的日期为当年的第几周(以2009年12月31日为例):原创 2014-04-08 17:08:58 · 1787 阅读 · 0 评论 -
使用Oracle内建功能对ETL构建
在Oracle9i中引入了外部表(External Table)的概念,通过访问驱动程序ORACLE_LOADER可以对数据库之外的文件进行只读的SQL查询。在Oracle10g中,提供了第二个访问驱动程序ORACLE_DATAPUMP,允许用户对外部表进行写操作,写出的结果文件以特定的结构保存并允许DPAPI访问,即该结果文件可以被加载到另一个数据库中。同时,新的访问驱动程序也支持列对象的投影。原创 2014-03-19 11:49:50 · 425 阅读 · 0 评论 -
利用Oracle分析函数LAG求时间段内的本期、同比、环比值
with time_dim as (select add_months(add_months(date'2013-7-1',-12),(rownum-1)) dim_month from dual connect by level <=months_between(date'2014-1-1',date'2012-7-7')+2)select t.dim_month, t.原创 2013-11-14 13:07:18 · 865 阅读 · 0 评论 -
在Oracle中调用Java Source 的方法
通常有三种方法来创建java存储过程。一、手动编写Java存储过程/函数 利用SQL脚本代码,手动编写可供Oracle调用的Java存储过程或函数,和普通的存储过程/函数创建方法类似,以存储过程为例,语法如下:CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED java_soure_name AS示例:创建一个简单的Hell原创 2013-11-27 15:59:32 · 1901 阅读 · 0 评论 -
PL/SQL中类似break 和 continue的实现
在如C/C++,Java编程语言的循环控制结构中,都有break和continue关键字可以灵活的控制循环体如何结束和跳出本次循环。但是PL/SQL本身是不具备这种关键字的,但是却可以利用一些方法实现类似的功能。PL/SQL中的循环控制结构常用的有如下几种:LOOP sql statement...EXIT WHEN CONDITION ... END LOOP;WHILE CON原创 2013-11-27 09:52:23 · 1167 阅读 · 0 评论 -
利用EXCHANGE PARTITION将未分区表组合成分区表
今天遇到一个问题,就是需要建立一个分区表,按照时间范围分区。但是问题是,这个事实表之前就已经存在了,而且里面也有了大量的数据,此时将该未分区表变化为分区表就有了如下几个办法:建立一个表结构相同的分区表,在将源表中的数据插入到分区表中,根据分区裁剪功能,满足条件记录会自动的插入到分区当中。利用9i开始引入的一个机制——在线重定义(DBMS_REDEFINITION包),但是此时要求源表一原创 2013-10-10 16:16:23 · 442 阅读 · 0 评论 -
Oracle DBMS_JOB.submmit使用
在创建Oracle调度的时候,我们经常使用Oralce系统自带的调度包DBMS_JOB,虽然在10g开始有了DBMS_SCHEDULER,但是这是对原有的增强,基本的方法还是差不多的。用法DEMO:DBMS_JOB.SUBMIT(:jobno, --job号 'your_procedure;', --要执行的过程原创 2013-10-09 17:13:31 · 513 阅读 · 0 评论 -
物化视图日志结构
物化视图的快速刷新要求基本必须建立物化视图日志,这篇文章简单描述一下物化视图日志中各个字段的含义和用途。物化视图日志的名称为MLOG$_后面跟基表的名称,如果表名的长度超过20位,则只取前20位,当截短后出现名称重复时,Oracle会自动在物化视图日志名称后面加上数字作为序号。物化视图日志在建立时有多种选项:可以指定为ROWID、PRIMARY KEY和OBJECT ID几种类型,转载 2013-10-09 15:30:49 · 364 阅读 · 0 评论 -
动态SQL编程讨论与示例
PL/SQL中使用动态SQL编程在PL/SQL程序设计过程中,会遇到很多必须使用动态sql的地方,Oracle系统所提供的DMBS_SQL包可以帮助你解决问题。(一)介绍DBMS_SQL系统包提供了很多函数及过程,现在简要阐述其中使用频率较高的几种:function open_cursor:打开一个动态游标,并返回一个整型;procedure close_curso转载 2013-10-09 15:38:32 · 576 阅读 · 0 评论 -
【INSERT】逐行提交、批量提交及极限提速方法
在Oracle数据库中,不是提交越频繁越好。恰恰相反,批量提交可以得到更好的性能。这篇文章给大家简单展示一下在Oracle数据库中逐行提交于批量提交两者之间的性能差别。最后再给出一种可以极大改变性能的方法。1.创建表t_ref,并初始化880992条数据,用于后面的实验。sec@ora10g> create table t_ref as select * from all_object转载 2015-03-03 10:02:51 · 500 阅读 · 0 评论