使用hint来调优sql语句
生产发现有一个sql语句运行耗时达5000多秒。抓出来sql_id一看,sql倒不是一个很长的语句。结构也很简单。如下。select company_code, sap_company_id from data_company_code where company_code not in (SELECT dist inct l9_company_code F...
使用awk来解析dump文件
dump文件是平时工作中经常碰见的,有时候得到一个dump,但是没有提供一些更多的信息,导入的时候就很可能会有问题。如果某个用户默认表空间是user,但是dump中的表所属的表空间是datas01,则导入的时候会自动转换表空间。但是如果表中存在lob字段且dump的表空间和目标环境的表空间不一致,就有在导入dump的时候,经典的0095...
奇怪的登录问题及解决
最近新建了好几个测试库,有一个库在过了一段时间之后,出现了很奇怪的问题,有时候能够登录,有时候又登不上。通过sqlplus登录,报错如下:>sqlplus n1/n1@testhost1SQL*Plus: Release 11.2.0.2.0 Production on Wed May 14 15:04:35 2014Copyright (c) 1982, 2010, Oracle. All rights reserved.ERROR:ORA-1...
巧用shell生成数据库检查脚本
在生产环境中需要部署大量的数据变更。对于新增的表,需要注意权限和同义词等。但是手动去检查这些变更是否生效就很麻烦。而且也不易维护,比如写好了一个脚本,可能在过一段时间,有一些紧急变更,需要把这些变更加进来,可能就忘了更新检查脚本。考虑到检查的性能,不想查询数据,只需要保证能够正常访问表即可。所以写...
字符画,你可能未知的美
在平时的工作中,如果接触字符界面时间比较长的时候,都会无意识的感觉到单调,认为字符只能表达一些抽象复杂的东西,对于图形的那种简单和清晰,显得有些力不从心。 今天和大家来分享一下字符画,可能你未知的美。 先来和大家分享一个简单的例子。 如果老看大片,这个场景是经常能看到的。 我自己也...
有趣的linux命令总结
linux命令可以简化我们工作中的许多任务。关于Linux这个主题已经考虑很久了,也还是在不断的完善中,在自己的实验和各种资料的整理中,认为还是一些不错的命令。 1.查看自己常用的linux命令 history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10 这行脚本能输出你最常用的十条命令,可以看...
循序渐进调优ddl的案例
在平时的工作中,可能需要导入一些数据,有些表可能比较大,对于constraint的操作可能会耗费大量的时间,今天简单做了一些相关的测试,也提出了一些相关的优化方案,对结果进行比较,看看哪种才是比较合理的方法。 首先监控redo,undo的生成量也是衡量的一个标准。本次测试就简单从redo,undo,执行时间这三个方面进行总结。...
归档问题导致的数据库无法启动
本地有一个小的环境,今天照例登上sqlplus,突然发现报了如下的错误。一看原来归档满了。我记得前几天做一个批量操作临时把temp文件resize了很大,限于本地空间有限。准备改回去。把多余的归档删除了。 sqlplus n1/n1 .... ERROR: ORA-00257: archiver error. Connect internal only, until freed. 这个时候sysd...
使用shell脚本查看数据库负载情况
平时在查看数据库的问题时,会有种迷茫的感觉,如果没有任何人反馈问题,基本上没有主动查找问题的方向,awr,ash都是在得知问题发生的时间段或者一些时间戳来从历史记录中查找相关的信息,个人整理了如下的脚本,能够显示当天的时间段内数据库的负载信息,能够很好掌握数据库的忙闲情况。 来看一个简单的例子,比如我要查...
关于exp statistics的问题和简单测试
在数据导出的时候,可能会碰到EXP-00091: Exporting questionable statistics.的问题,有时候会让人有点摸不到头脑,不知道该调整什么。 这个时候NLS_LANG就发挥作用了。 [ora11g@rac1 ~]$ exp n1/n1 tables=t file=t.dmp rows=n Export: Release 11.2.0.3.0 - Production on Fri May 23 19:26:35 2014 Copyright (...
使用sql语句分析双色球
这个题目看似有点无厘头,老写技术博客,也来干点“正事",用sql语句分析一下近十年来的双色球情况,不过我肯定算不出来开奖结果,纯属个人娱乐,个人觉得概率让一切皆有可能,但是用sql语句测试,有些结果还是和大家的想象有很大的出入。首先通过博彩网站找到数据来源,可以下载成excel文档之类的,对格式做一个简单的排...
sqlldr批量导入导出数据测试
sqlldr是在处理大数据量的操作中建议采用的方式,它有许多性能想关的开关,能最大程度的减少redo,undo的生成,控制数据的处理方式(insert,append,replace,truncate)因为项目需要,对比datapump性能还是不理想,所以还是希望采用sqlldr来做。个人做了简单的测试。根据thomas kyte的介绍,并行执行路径加载时最快的方式,能...
生产系统pl/sql调优案例
昨天基本休息了一天,想着生产系统升级也会多多少少碰到些问题,肯定有一些心得或者是值得学习的东西,结果昨晚到现在生产系统升级一直为一个pl/sql的问题所困扰。在测试环境中只用了十多分钟, 在生产系统上跑了快5个小时。这个经历太痛苦了,大半夜还在考虑怎么优化真是痛苦。这个也算是一个很深刻的学习经验,和大家...
生产sql调优之统计信息分析
今天凌晨,又被电话叫醒了,说是有1个sql,现在跑的很慢。问题已经挺严重了,想让我看看,能不能做点什么。首先就是和他们确认最近有什么改动,他们说这个是用了很久的sql语句了,没有任何的改动,再听他们说,之前也没有任何的问题。然后就和他们确认之前这个jobl处理大概多长时间,那个哥们说他也是最近才进的这个项目...
生产环境sql语句调优实战第二篇
全表扫描 vs 索引
关于enq: TX - allocate ITL entry的问题分析
今天发现系统在下午1点左右的时候负载比较高,就抓取了一个最新的awr报告.Snap IdSnap TimeSessionsCursors/SessionBegin Snap:2089226-Nov-14 13:20:1736235.4...
数据紧急修复之启用错误日志
昨晚对测试环境进行了升级,同步了部分生产的数据。整个过程比较顺利,但是在最后一步启用foreign key constraint的时候报了错误。ora-02298:cannot validate(xxxx.xxxx_fk) -parent keys not found很明显是一部分数据没有同步到,有一部分数据丢失了。和开发做了确认,从生产中根据条件导出了一个dump,关联的表有100多个...
使用shell进行日志分析
最近做数据批量加载的时候,是通过pl/sql嵌在shell脚本里执行的。脚本运行后生成的日志类似如下的格式Get Dump file for APP_TMP.TESTRESS_NAME_LINK...Elapsed: 00:00:00.64.DB details is accessible from source schema ....DB details is accessible from target schema ....Directory ext_datapump_dir...
数据迁移中需要考虑的问题
在生产环境中,做数据迁移需要考虑很多的可能性和场景,尽量排除可能发生的问题。我自己总结了下,大体有如下需要注意的地方。1)充分的测试,评估时间,总结经验,提升性能在生产中进行数据的大批量迁移时,充分的测试时必须的。一方面可以根据这些测试积累一些必要的数据作为生产中使用参考,另外一方面可以基于之前的...
关于desc的一个奇怪问题及分析
在平时的工作中,desc这个命令可谓短小精悍,可以很方便的查看表结构和not null的情况。今天在生产环境中碰到一个有些奇怪的desc问题。首先是数据迁移组说有一个表的constraint丢了。但是在master中有。这种问题有两种可能,一种就是constraint确实丢了。另一种可能性就是创建的constraint的问题,可以参见: no...