老头子

专注是唯一的捷径

0
推荐
1782
阅读

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
推荐
3582
阅读

《Oracle SQL优化基础》之分区

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

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

0
推荐
1735
阅读

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

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

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

21
推荐
4424
阅读

《Oracle SQL优化基础》之索引

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

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

6
推荐
2566
阅读

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

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

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

4
推荐
2811
阅读

关于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
推荐
3414
阅读

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

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

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

2
推荐
2068
阅读

关于in和exists

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

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

4
推荐
3025
阅读

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

今天一个网友妹子发来一段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
推荐
5733
阅读

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

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

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