2015年学习计划
虽然忙活了一年,但是今天审视自己在年初定的学习计划,自己也是好多作业没有完成。有些要求是简单了解,书都没找到,有些要求是熟悉,也都忘了看了。2015年重拾2014年未完成的学习计划,也让自己在得瑟的时候明白自己其实好多都不会。大家也可以抽空订立自己的学习计划,可以安排好时间,不管能不能完成,总之过程是很...
crontab导致CPU异常的问题分析及处理
今天查看数据库负载没有发现问题,但是当我使用top命令的时候,发现有一个进程占用了大量的cpu资源而且已经执行很长时间了。这一下子引起了我的注意。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ...
一次数据库无法登陆的问题及排查
今天在中午的时候,收到客户的邮件,说数据库访问有问题了,赶紧连到生产环境查看。结果在尝试登录的时候报了listener的错误,感觉像是listener停了一样。> sqlplus n1/n1@xxxxSQL*Plus: Release 11.2.0.2.0 Production on Mon Dec 29 12:33:23 2014Copyright (c) 1982, 2010, Oracle. All rights reserved.ERRO...
关于导入dump
在工作中,dump文件对于dba而言是再平常不过的文件了。 不过在导入dump文件的时候还是有很多的细节可以注意,可以避免一些不必要的问题。 exp/imp是比较经典的数据导出导入工具,不过自expdp/impdp推出以来,exp/imp还是受到了不少的冷落,在新的版本中,支持力度都集中在了expdp/impdp上面。不过不管怎样,exp/imp还...
通过shell分析表依赖的层级关系
在平时的工作环境中,总会有一些表会存在依赖关系,比如我们有三张表customer,用户表subscriber,账户表account其中客户可以有多个用户或者账户,subscriber表和account表中就存在外键customer_id指向了customer表。这种情况下表的依赖关系就如下所示:customer &...
关于技术分享的思考
记得从自己2月份申请了公众号群发学习笔记以来,自己坚持写技术博客已经有快300天了,从当时一个简单的念头到现在的不断坚持,其中的苦与累,个中滋味,自己是感慨良多。有时候翻看起以前的笔记,就能勾起自己的一些回忆。学习笔记可能涉及的面不广,但是基本都是以实用为出发点,纯粹就是为了技术分享和个人参考。从零...
关于oracle中的反连接
在之前的章节中见到讨论过oracle中的半连接 http://blog.itpub.net/23718752/viewspace-1334483/与半连接相对应的是反连接,简而言之半连接就是查询条件中的in,exists,反连接就是not in, not exists这种类型的连接。在asktom中,tom也对大家关心的in,exists,not in, not exists的问题进行了大量的佐证和解释。因...
通过java程序模拟实现地铁票价2+2=12
地铁票价在这周六开始就要上涨了,这几天做地铁明显感觉人比平常多了很多。大家也都在默默的等待这一刻的到来,尽管很不情愿,但是终究会来。到时候肯定吐槽的人一抓一大把,毕竟一天上班4块的时代就要终结,一下子变成十几块,票价涨了,生活成本都在上涨,其它都没有变化,生活着实不容易啊。我每天从二号线转到四号线...
探究AWR 第二篇
在探究awr第一篇中介绍了awr的一些基本操作 http://blog.itpub.net/23718752/viewspace-1123134/在这一篇中,我们来分析几个awr报告来探究一下awr的一些信息,其实在报告中有很多的信息是互相印证的。对于我们深入理解awr报告还是很哟帮助的。首先来看看CPU负载的分析,这个也是理解awr的一个切入点。CPU资源的考虑...
使用shell脚本查看数据库负载情况(第二篇)
在之前写了一个shell脚本,能够得到一个基于时间点的数据库负载报告。使用shell脚本查看数据库负载情况 http://blog.itpub.net/23718752/viewspace-1168027/在生产环境中快照的生成频率可能10分钟或者半个小时就会生成,频率要快些,使用原先的脚本执行起来会有一定的延时。想查看在快照的时间间隔内数据库的负载...
通过sql语句分析足彩(第三篇)
在之前写过两片关于sql语句分析足彩的。都从不同的角度提供了一些思路,之前是基于500场比赛的数据分析,为了数据分析的更加有说服性,我抽取了7000多场比赛的数据来作为分析的基础。自己是在世界杯的时候开始买的,发现真是期望越大,失望越大.。来看看总体的比赛情况。从1月份开始到10月份,有大概7000多场比赛。我们...
聚簇因子和执行计划的联系
SQL> select *from t1 where rownum
关于等待事件"read by other session"
在查看数据库负载的时候,发现早上10点开始到12点的这两个钟头,系统负载异常的高。于是抓取了一个awr报告。Snap IdSnap TimeSessionsCursors/SessionBegin Snap:2402718-Dec-14 10:00:433065...
使用shell定制addm脚本
在10g开始推出的addm对于工作中的调优能够提供很多的帮助,而且建议也更加客观和全面。但是使用addmrpt.sql的时候还是有些慢,可以使用如下的脚本来定制addm,能够根据快照生成指定的addm报告。脚本的内容如下:相比于定制awr,ash要略微有一些难度。对于addm目前只提供了文本格式的内容,所以格式的处理上没什么特别的地...
简单实用的sql小技巧(第二篇)
ASCII和CHR在平时的工作中,可能会在sql或者pl/sql块中嵌入特殊字符,比如空格,回车之类。这个时候可以使用ascii和chr来做字符和ascii码的转换。比如我们想得到字母a对应的ascii码,可以使用ascii来实现。SQL> select ascii('a') from dual;ASCII('A')---------- 97如果反推,需要...
关于reset sequence
sequence在工作中使用比较频繁,对于Insert中插入的值,如果只需要它能够自动递增,这个时候sequence就派上用场了。但是既然sequence的值需要递增就有可能会达到最大值。比如sequence从1开始递增,递增幅度为1,最大值为100,那么很快就会达到最大值。我们可以指定sequence的值。这个时候可以使用删除,重建的方式,但是这种...
关于long类型的转换
在oracle中对于long类型的处理时很纠结的。最开始引入这个数据类型的时候是对原有数据类型的补充,但是后面发现还是碰到了一些问题,使用Lob类型代替了。但是long类型从兼容性上来说还得支持,而且从数据库的数据字典中还是能够看到Long类型的影子。比如我们想查看一个表中某个列的默认值情况,可以查询user_tab_cols,或者...
关于索引的内部信息
在oracle中对于索引的存储都是采用B树索引来实现。B树索引是比较成熟的一种数据存储结构,在很多的软件中都有大量的应用,oracle中也不例外。因为B树索引是树形结构。存储的时候也是带枝带叶的。简单来说,索引就像文章里的目录,字典中的词条检索项。索引分为根节点,分支节点和叶子节点。这种结构对应生活中的树来说明就...
关于索引扫描的极速调优实战(第二篇)
在上一篇http://blog.itpub.net/23718752/viewspace-1364914/ 中我们大体介绍了下问题的情况,已经初步根据awr能够抓取到存在问题的sql语句。这条sql语句执行很频繁,目前平均执行时间在0.5秒。开发部门希望我们能不能做点优化,他们也在同时想办法从业务上来优化这个问题。从0.5秒的情况下,能够再提高很多,是得费很大力...
关于索引扫描的极速调优实战(第一篇)
一般在生产环境中,如果某个查询中涉及一个大表,走索引扫描是显然是最值得推荐的方式,但是索引扫描有unique index scan, range scan,skip scan, full scan, fast full scan,这些索引扫描看起来好像很繁杂,但是如果掌握得当,却能够在索引扫描的基础上极速提升性能。关于索引扫描的方式,可以参考。http://blog.itpub.net...