11
推荐
2942
阅读

关于CBO谓词推入的八阿哥

版本:oracle 11gr2背景今天群里有朋友发了个神奇的SQL:注释部分是数据量,两段SQL除了union和union all外,其他部分一模一样(第一段是union all,第二段是union)但是结果却是:union all ---1765条数据union     ---2014条数据 ---1765 SELECT count(DISTINCT(bankid)) FROM (  ...

发表了文章 • 2016-11-09 17:56 • 2 条评论

4
推荐
5022
阅读

关于union all和union的顺序

给别人解决问题突然想到一个有意思的东西:union 和 union all的执行顺序是怎样的?大家都知道union是排序去重的,而union all则是单纯的把数据放在一起。现有如下SQL:select 1 from dual   --A union all select 1 from dual   --B union select 2 from dual   --C union all select 1 from dual ...

发表了文章 • 2016-11-07 17:03 • 2 条评论

2
推荐
1614
阅读

show_space() 小公举

Tom写的一个小工具:查看表的空间使用情况1.  仅限非ASSM下2.  用户对dbms_space包要有权限create or replace     procedure show_space     ( p_segname in varchar2,       p_owner   in varchar2 default user,       p_type    in varc...

发表了文章 • 2016-11-03 16:25 • 0 条评论

4
推荐
1923
阅读

Oracle 11g OWB安装

昨天手贱了一把,临下班安装Oracle的DW,结果卡主40%不动了,为了赶紧回家吃饭于是中断了安装,结果第二天来安装就遇到了各种问题:注:Oracle11g的dataware house是通过自带的一个安装助手安装,在开始菜单栏里如下目录即可找到为了解决半路取消安装,导致的再次安装失败的问题,从网上也查了下资料,最后得到如下方案...

发表了文章 • 2016-09-27 11:09 • 1 条评论

4
推荐
1891
阅读

Oracle实现日历

今天群里网友在聊用SQL写日历,于是自己也写了一下,2种方式一、 with ltz as  (select trunc(sysdate, 'MM') + level - 1 as d,          to_char(trunc(sysdate, 'MM') + level -&nbs...

发表了文章 • 2016-07-06 17:05 • 2 条评论

3
推荐
1794
阅读

关于Oracle局域网内访问失败

今天遇到个小问题,我自己电脑上有安装oracle11g服务端(win7 64位系统),自己本地访问都OK,但是同事(下称小A)访问就不行,报ora-12541错(TNS:无监听)小A自己本机配置的TNS如下: ORCL =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST&...

发表了文章 • 2016-03-16 16:27 • 1 条评论

2
推荐
2025
阅读

社区网友业务需求一则---数据稠化

社区网友在群里咨询了一个问题,简化后的需求如下:获取截取到当前时间(月 to_char(a, 'yyyymm')),所有的编码(C)的最大版本号(max B),例如:现在有A表 数据如下:A为时间,B为版本号,C为编码  如果是2015-12月则获取a、b、c三个编码,对应的最大版本号分别为100、100、150如果是2016-01月则获取a、b、c、...

发表了文章 • 2016-03-11 15:14 • 10 条评论

4
推荐
2352
阅读

【SQL案例】Pivot函数解决社区网友问题

今天网友发来一个问题,描述如下:有一个表(其实是他建的视图):最终效果图如下:建表语句如下: -- Create table create table DATAS (   id       NUMBER(38) not null,   modelid  VARCHAR2(8) not&nbs...

发表了文章 • 2015-11-05 18:57 • 2 条评论

1
推荐
2675
阅读

关于index fast full scan

之前在工作的时候遇到过这样一个问题,表A_HEAD和表B_ATTR关联需要通过表A_LINE,但是A_LINE是一个10亿大的明细表,有100多个字段,而我实际SQL关联只用到了其中的2个字段或者这种情况:查询某表中一共多少数据,展示出来,导致每次count(*),或者count(ID),同样的表很大,每次全表扫描非常慢。通常情况如果我们只用到...

发表了文章 • 2015-11-04 15:57 • 1 条评论

1
推荐
4587
阅读

【Oracle】查看事务回滚的时间

首先,我是做BI的,在工作中偶尔会出现一些特殊情况,比如突然在某天ETL日增量调度的时候一个简单的插入操作卡住不动几小时都过不去,平时可能30分钟左右。可能是资源征用导致DataStage资源分配不均等各种原因,这个时候通常会有运维的同事协助中断此作业的运行,进行重新插入。中断后就要开始漫长的等待,等全部rollbac...

发表了文章 • 2015-10-23 15:27 • 0 条评论

0
推荐
2450
阅读

【转载】oracle全文索引的创建和使用

一、设置词法分析器Oracle实现全文检索,其机制其实很简单。即通过Oracle专利的词法分析器(lexer),将文章中所有的表意单元(Oracle称为term)找出来,记录在一组以dr$开头的表中,同时记下该term出现的位置、次数、hash值等信息。检索时,Oracle从这组表中查找相应的term,并计算其出现频率,根据某个算法来计算每个文档...

发表了文章 • 2015-10-19 13:49 • 0 条评论

0
推荐
2329
阅读

Oracle基于函数的索引

比如执行如下一条SQL语句:select * from emp where upper(ename) = 'KING',即使在ename上建立了索引,还是会全表扫描emp表,将里面的ename字段改成大写跟常量KING进行比较。如果我们建立一个基于函数的索引,比如:create index emp_upper_idx on emp(upper(ename)); 这个时候,我们只需要按区间扫描小部分数据,然后...

发表了文章 • 2015-10-19 13:48 • 1 条评论

0
推荐
2275
阅读

【转载】日志记录模式(LOGGING 、FORCE LOGGING 、NOLOGGING)

--==================================================-- 日志记录模式(LOGGING 、FORCE LOGGING 、NOLOGGING)--================================================== 一、日志记录模式(LOGGING 、FORCE LOGGING 、NOLOGGING)    1.三者的含义        LOGGING:当创建一个数据库对...

发表了文章 • 2015-10-12 17:40 • 2 条评论

4
推荐
3539
阅读

关于index fast full scan

之前在工作的时候遇到过这样一个问题,表A_HEAD和表B_ATTR关联需要通过表A_LINE,但是A_LINE是一个10亿大的明细表,有100多个字段,而我实际SQL关联只用到了其中的2个字段或者这种情况:查询某表中一共多少数据,展示出来,导致每次count(*),或者count(ID),同样的表很大,每次全表扫描非常慢。通常情况如果我们只用到...

发表了文章 • 2015-10-10 16:54 • 0 条评论

2
推荐
2655
阅读

关于in和exists

其实看到这个标题很多小伙伴就笑了,这个话题真的是永垂不朽,各种面试专用题目,从我刚开始接触Oracle的时候就开始有这个问题了,那时候还没什么人去研究这俩所以基本你去百度和论坛搜索的话基本得到的一致答复就是exists比in快,而理由无非是exists可以用到索引,exists先走内查询等等等等。但这些都是不完全正确的,...

发表了文章 • 2015-10-10 14:41 • 13 条评论