老头子

专注是唯一的捷径

2
推荐
2878
阅读

Oracle 优化培训课程(数据仓库)2天班 报名中!

课程简介为了满足各位BI从业者(Oracle方向)线下面对面培训的学习要求,以及为了提供更好的学习体验,我们特此推出基于数据仓库的Oracle的优化基础 周末+1 或假日班+1 的线下课程。 培训方式:线下现场培训+现场编码和设计+现场练习+实际项目案例+课后线上指导+单人模拟面试与辅导培训周期:北京(周末...

发表了文章 • 2015-10-26 11:30 • 8 条评论

1
推荐
4549
阅读

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

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

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

0
推荐
2430
阅读

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

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

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

0
推荐
2313
阅读

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 条评论

12
推荐
4482
阅读

《Oracle SQL优化基础》之分区

首先我们从一个图书馆引出话题(又是那个图书馆,是不是该取个名字了)我们之前索引那一篇里的图书馆有100w本书,那个学校来借了一次80w本书,把图书馆管理员累的不行。后来那他申请按照书内容的类型进行排序,分层摆放。后面有学校再来接的时候说我要烹饪类 的书,他就可以直接找到,无需“全表扫描”,也不用翻目录了,...

发表了文章 • 2015-10-19 11:37 • 13 条评论

0
推荐
2249
阅读

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

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

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

21
推荐
6182
阅读

《Oracle SQL优化基础》之索引

最首先我想还是先百度下索引的定义:索引,使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。好的,就是因为这样一种朦胧两可的定义,导致现在绝大部分初学者甚至老油条都无法正确认识并使用索引。这一篇主要还是讲下基础,再深的原理机制不再此篇幅中,如果大家都懂了,...

发表了文章 • 2015-10-12 16:07 • 27 条评论

6
推荐
3373
阅读

【Oracle性能优化】 之 《Oracle SQL优化基础》系列

我叫老头子,2015-10-8日受邀来社区写博客/回答问题,从社区问答里看得出,论坛里很多朋友对Oracle优化这块都不是很了解,或者从别人的经验学来的优化方法,但毫不清楚Oracle的处理机制,导致抓不住性能瓶颈,优化重点,我做BI有6年了,发现这其实是我们做BI开发人员的一个共性,我们只对工具研究来研究去,却忽略了数据...

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

4
推荐
3519
阅读

关于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 条评论

9
推荐
4231
阅读

《Oracle SQL优化基础》之位图索引(BitMap index)

有不少做BI的后台同事问我,位图索引是啥?啥时候用? 此篇仅作为一个扫盲篇,有不对的地方欢迎大神指正。首先我们要搞明白位图索引是什么,与普通的B*树索引有什么区别呢?顾名思义,首先他是个索引(废话!),其次是以位图的形式进行存储、计算的。看个图,下面是我们常用的B*树索引结构(取自网络):可以看得出,表...

发表了文章 • 2015-10-10 16:50 • 1 条评论

2
推荐
2640
阅读

关于in和exists

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

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

4
推荐
4167
阅读

【优化案例】一次笛卡尔乘积的优化

今天一个网友妹子发来一段SQL说执行非常慢,让我看下,其实问题很简单,2分钟搞定,我们平时也会经常遇到,SQL及执行计划如下--跑了7分钟 SELECT T.*, A.*, B.LOGIN_ID, B.USER_NAME   FROM MID.T_RPT_RES_PRO_PRE_ALL_LISTTEMP T,        ...

发表了文章 • 2015-10-10 14:32 • 6 条评论

5
推荐
6603
阅读

【SQL优化案例】关于wm_concat的一次优化

前几天有2个同学发来SQL优化求助。第一段比较简单,BI系统的merge语句要执行半小时,原因是没有做表分析,1亿数据量的表分区却走了全表扫描,且没有使用并行(分析系统终极优化法则:分区+并行)第二段SQL属于OLTP交易系统,无法开并行,否则在业务洪峰的并发期服务器会down。如下是这位兄台的SQL,说在数据库了10分钟出...

发表了文章 • 2015-10-09 20:44 • 16 条评论