
Oracle数据库开发
文章平均质量分 58
TBNoO
坚持~ 别急着要结果
展开
-
BI的架构模型
数据仓库的架构模型包括了星型架构与雪花型架构两种模式如图所示,星型架构的中间为事实表,四周为维度表,类似星星;而相比较而言,雪花型架构的中间为事实表,两边的维度表可以再有其关联子表,从而表达了清晰的维度层次关系。从OLAP系统的分析需求和ETL的处理效率两方面来考虑:星型结构聚合快,分析效率高;而雪花型结构明确便于与 OLTP系统交互。因此,原创 2016-04-22 14:47:50 · 2341 阅读 · 1 评论 -
oracle——SQL复习11
--随机数select trunc( dbms_random.value(1,3) ) from dual; --这个随机添加太有意思了 select decode(trunc( dbms_random.value(1,3) ),1,'M',2,'F') from dual; --收获,不止oracle 讲解索引的总页数: 136select 326 -190 from dual ;原创 2016-04-13 17:39:50 · 453 阅读 · 0 评论 -
oracle 执行计划里的cost(%CPU)与consistent gets
有一次做实验,产生了以下的疑惑:oracle 执行计划里的cost(%CPU)与consistent gets之间是什么关系? 为什么会存在consistent gets大,而 Cost 小的情况?一般不都是cost小,越有利于SQL优化,相应的consistent gets应该小才对。看了一本优化书 ,解答如下:真正决定性能的是 co原创 2016-04-12 22:27:26 · 4162 阅读 · 0 评论 -
oracle——SQL复习10
--Purge和drop的区别:Oracle 10g提供的flashback drop 新特性为了加快用户错误操作的恢复--添加purge,是彻底drop 不能在回收站中回复drop掉的对象 drop table norm_tab purge;create table norm_tab (id number,deal_date date,area_code number,cont原创 2016-04-12 15:09:11 · 575 阅读 · 0 评论 -
【ETL】拉链表算法
所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。 算法:(拉链表算法其实就是以前遇到过的缓慢变化维的其中一种情况,用存储过程实现的话稍微麻烦点。)1采集当日全量数据到ND(NewDay)表;2可从历史表中取出昨日全量数据存储到OD(OldDay)表;3(ND-OD)就是当日新增和变化的数据,也就是当天的增量,用W_I表示;4(OD-ND)为状态到原创 2016-04-08 16:17:35 · 13820 阅读 · 1 评论 -
分区的功能之一:分区消除
分区消除:优化器在执行时过滤掉不需要扫描的分区,只对相关的分区进行扫描。1.这是50万数据量的普通表数据扫描12.这是50万数据量的范围分区表数据扫描 两者的cost相差接近6000,这就是表进行分区后,优化器在执行时过滤掉不需要扫描的分区,也就是所谓的分区消除。原创 2016-04-12 13:48:02 · 1488 阅读 · 1 评论 -
总结:整理 oracle异常错误处理
5.1 异常处理概念5.1.1 预定义的异常处理5.1.2 非预定义的异常处理5.1.3 用户自定义的异常处理5.1.4 用户定义的异常处理5.2 异常错误传播5.2.1 在执行部分引发异常错误5.2.2 在声明部分引发异常错误5.3 异常错误处理编程5.4 在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数即使是写得最好的PL/SQ转载 2013-01-05 10:40:34 · 1668 阅读 · 0 评论 -
oracle——SQL复习01
--学生表create table t_student(sid int,sname varchar2(20),sage int,ssex varchar2(20),sdept int); insert into t_student values(2005001, 'zs', 22, 'M', 1001); insert into t_student values(2005002原创 2016-03-10 14:03:47 · 497 阅读 · 0 评论 -
oracle——SQL复习03
-- 空值转换select nvl(null,0) from dual;-- 有值指向第一个,无值指向第二个select nvl2('aaa',1,2) from dual; select nvl2(null,1,2) from dual; --获取这个月末,上个月末的时间select last_day(trunc(sysdate)) from dual; select las原创 2016-03-15 12:12:58 · 472 阅读 · 0 评论 -
oracle服务名
今天又载在oracle数据库的sysdba权限的设置 本地默认的服务名是zxin,实例名也是zxin。结果在sql2005需要借去了zxin这个服务名,对应的IP不在是我的本机IP,让我纠结了sysdba权限半天。 明明重新设置了密码,却无法使用sys/sys以sysdba身份登陆。 后来,想不开了。只好向同事求助了。 同事一过来,一提出zxin对应的IP的地址是哪原创 2012-02-01 18:40:38 · 601 阅读 · 0 评论 -
oracle内存
Oracle的内存配置与oracle性能息息相关,内存直接影响到其他两个重要资源的消耗:CPU和IO 一个Oracle数据库是由Oracle 实例与数据库(数据文件,控制文件、重做日志文件)组成 Oracle 实例是由统一的内存结构(SGA,PGA,UGA)和一批内存驻留进程组成(注:实例在操作系统中用ORACLE_SID来标识,在Oracle中用参数INSTANCE_NAME原创 2012-02-02 23:24:11 · 501 阅读 · 0 评论 -
cmd的sql执行计划各项属性说明
SQL> select t1.empno, t1.ename, t2.deptno, t2.dname from emp t1, dept t2 where t1.deptno = t2.deptno(+); EMPNO ENAME DEPTNO DNAME---------- ---------- ---------- -------------- 7369 SMITH 20 RESEARCH原创 2016-04-14 11:35:01 · 515 阅读 · 0 评论 -
Oracle Trace文件生成及TKPROF格式化查看
Oracle Trace文件生成及TKPROF格式化查看 实例原创 2016-04-14 12:45:06 · 2821 阅读 · 0 评论 -
中间表--简例说明
SQL> select t.sid, t.sname 2 from t_student t 3 where t.sid not in 4 (select distinct t.sid 5 from t_score t 6 where t.cid in 7 (select t.原创 2016-04-21 18:15:16 · 2593 阅读 · 0 评论 -
关于BI
目前国内的连锁零售行业的发展趋势,呈现出产业规模化,经营业态多样化,管理精细化的特点。所谓管理精细化就是"精耕细作搞管理,领先一步订系统"。如今的商业企业在日常的经营过程中,产生了大量的信息,这些信息蕴藏了丰富的经营技巧和市场规律,怎样才能有效的利用这一宝贵的资源是每一个零售企业最为迫切的愿望。于是,商业BI(Business Intelligent 商业智能分原创 2016-04-21 13:23:34 · 664 阅读 · 0 评论 -
DISTINCT 列添加索引
添加索引后,没啥效要,这方面优化没啥效果,如果项目要用到DISTINCT进行去重,需要再去确认基表关联,确认业务。SQL> select t.object_id from t_distinct_tb t ;已选择50631行。已用时间: 00: 00: 00.71执行计划-----------------------------------------------------原创 2016-04-15 18:03:24 · 2731 阅读 · 1 评论 -
order by 列加索引
SQL> set autotrace traceonly;SQL> select * from t_order_tb t where t.object_id > 2 ;已选择50628行。已用时间: 00: 00: 02.25执行计划----------------------------------------------------------Plan hash value原创 2016-04-15 17:20:18 · 939 阅读 · 0 评论 -
截断分区数据导致全局索引失效
alter table range_part_tab truncate partition PAR_LIST_MAX ;这样的语句会对分区表的全局索引失效,可通过 alter index idx_name rebuild;这样的语句进行全局索引的修复,也可以通过以下语句避免全局索引的失效alter table range_part_tab truncate partitio原创 2016-04-15 15:57:38 · 926 阅读 · 0 评论 -
分区交换 技术
分区交换,可以实现,普通表和分区表的某个分区之间的数据交换,它们之间的交换非常快。/**====================================================================*/select t.table_name , t.owner from ALL_PART_TABLES t where t.owner = 'SCOTT';原创 2016-04-15 15:06:46 · 842 阅读 · 0 评论 -
全局临时表
--CREATE GLOBAL TEMPORARY TABLE t_tmp_session on commit preserve rows asselect * from dba_objects where 2 =1 ;CREATE GLOBAL TEMPORARY TABLE t_tmp_transction on commit delete rows asselect *原创 2016-04-15 14:34:44 · 384 阅读 · 0 评论 -
创建 块大小为16K的表空间 语法
SQL> show parameter cache_sizeNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_16k_cache_size原创 2016-04-15 12:59:14 · 1723 阅读 · 0 评论 -
避免硬解析 的 SQL 执行过程
SQL> select x from t where x = 4523423; --第一次执行已用时间: 00: 00: 00.15执行计划----------------------------------------------------------Plan hash value: 1572208108-----------------------------------原创 2016-04-15 10:10:38 · 1050 阅读 · 0 评论 -
oracle——SQL复习12
-- 获取日薪select t.sal, t.hiredate, last_day(t.hiredate) - add_months(last_day(t.hiredate),-1) days from emp t;-- 获取工作日select level from dual connect by level <= 30 select to_char(sysdate ,'d') fro原创 2016-04-14 18:11:16 · 380 阅读 · 0 评论 -
oracle net manager
在windows 2003 下,首先安装oracle 10g db数据库,最先使用该安装目录下的net manager工具,配置相关的net 服务名“zxin”,然后在sql server 2005中通过链接服务器"zxin”进行测试链接是否通过并访问oracle数据库。后来,为了使用OEM工具,又安装了oracle 10g client,该目录下也有net manager 工具,安装完成后,原创 2012-02-03 23:06:14 · 4412 阅读 · 0 评论 -
exist-in和关联子查询-非关联子查询
对于exist和in,大家的一致看法如下: 1.in是子查询为驱动表,外面的表为被驱动表,故适用于子查询结果集小而外面的表结果集大的情况。 2.exists是外面的表位驱动表,子查询里面的表为被驱动表,故适用于外面的表结果集小而子查询结果集大的情况。 而为何会出现这种exists和in的使用上的区别呢,其实问题的关键在于关联子查询和非关联子查询上。exis转载 2012-05-19 23:46:30 · 5676 阅读 · 0 评论 -
oracle优化SQL语句的34条建议
(1)选择最有效率的表名顺序(只在基于规则的优化器中有效)orACLE的解析器按照从右到左的顺序处理 FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其转载 2012-05-20 11:01:46 · 1266 阅读 · 0 评论 -
使用rownum
今天,根据已往对数据库分页经验,试着使用oracle进行分页,但rownum就是用着很奇怪,毕竟用得少。当rownum=1做为条件的时候,可以返回数据,但rownum=2却无数据返回,其他再测试rownum>2也没数据返回只有将rownum查询出来的语句做为子查询,方可查询出来!也就是所谓的rownum实例化。通过网络搜索资料,了解到rownum是对结果集的编序原创 2012-10-22 19:48:53 · 1368 阅读 · 3 评论 -
oracle——SQL复习02
select * from t_score order by sid,cid;--1./** 查询“001”课程比“002”课程成绩高的所有学生的学号 */select t1.sid from (select t1.sid, t1.grade from t_score t1 where t1.cid = '001') t1 inner join (select t2.sid, t2.原创 2016-03-14 17:58:15 · 488 阅读 · 0 评论 -
oracle——SQL复习09
--创建无参函数create or replace function fun_test return integer is v_tst integer;begin select power(2,2) into v_tst from dual; return v_tst;end;--调用无参函数select fun_test from dual; -原创 2016-04-01 15:05:11 · 364 阅读 · 0 评论 -
oracle——SQL复习06
select * from emp ;------------------------------------无参数显式游标-------------------------------declare sname varchar2(20); --声明变量 cursor student_cursor is select sname from t_student; --1.声明原创 2016-03-18 17:59:02 · 323 阅读 · 0 评论 -
oracle——SQL复习08
select * from emp e order by deptno ;/**范围 分区*/drop table emp_part01; CREATE TABLE emp_part01 ( "EMPNO" NUMBER(4,0), "ENAME" VARCHAR2(10), "JOB" VARCHAR2(9), "MGR" NUMBER(4,0),原创 2016-03-31 00:44:33 · 299 阅读 · 0 评论 -
oracle——SQL复习07
select ltrim(' hello ') from dual;select ltrim('abcHello ','abc') from dual;select rtrim(' Hello ') from dual;select rtrim('abcHello abc','abc') from dual;select sysdate from dual; se原创 2016-03-30 17:05:48 · 459 阅读 · 0 评论 -
大数据处理
小结:1。分区2。建立临时表和中间表3。建索引加快查询,更新数据时须删除索引 4。优化查询SQL摊荐一遍值得收藏的数据优化:http://blog.youkuaiyun.com/DaiZiLiang/article/details/1432193原创 2016-03-18 13:38:48 · 358 阅读 · 0 评论 -
oracle——SQL复习05
--返回季度 1 2 3 4 select to_char(sysdate, 'Q') from dual; --返回本月第几周 SELECT TO_CHAR(SYSDATE, 'W') FROM DUAL; --DD 当月第几天 SELECT TO_CHAR(SYSDATE, 'DD') FROM DUAL; --D 周内第几天 SELECT TO_CHAR(SYSDATE,原创 2016-03-17 17:19:00 · 425 阅读 · 0 评论 -
oracle——SQL复习04
select t.sid,count(1) rnt from t_score t group by t.sid ;select t.sid, round(avg(nvl(t.grade, 0)), 2) avg_grade from t_score t where t.sid in (select t.sid from (select t.sid,原创 2016-03-16 18:19:32 · 314 阅读 · 0 评论 -
数据库设计三大范式
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库原创 2016-03-16 16:44:30 · 348 阅读 · 0 评论 -
子查询的执行计划
SET STATISTICS PROFILE ONEXIST关联子查询:select * from tb_1 A where exists(select 1 from tb_2 B where B.id=A.id) ;--select * from tb_1 A where exists(select 1 from tb_2 B where B.id=A.id) ;-- |--Ne原创 2012-09-20 20:30:50 · 1106 阅读 · 0 评论 -
数据库三层架构
三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。 1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。转载 2012-09-15 19:53:23 · 2933 阅读 · 0 评论 -
ORACLE学习经验之我的OCP认证之路
过了OCA OCP 后一直都想总结下自己学习的一些经验但一直都没动起笔来。今天就简单的谈一下我的ORACLE 学习之路。话说回到2006年,我在一个计算机培训学校里接受了ORACLE数据库的培训,从此开始了我的ORACLE学习生涯。 在众多的计算机领域我为什么选择了ORACLE 之所以我选择ORACLE其一 我觉得现在不管什么行业计算机行业好还是其他行业公司也好,什么都离不转载 2012-05-26 10:43:23 · 5024 阅读 · 1 评论 -
ORACLE10G_备份和恢复
步骤一:开始>> 程序>> Oracle Database 10g Express Edition>> 备份数据库在F:\OrcleFiles\app\oracle\product\10.2.0\server\database目录下找到OXE_BACKUP_CURRENT.LOG文件 可以查看备份过程的执行语句。日志如下:恢复管理器: Release 10.2.0.1.0 - Produc原创 2012-05-31 17:18:11 · 1560 阅读 · 0 评论