shell基础学习总结(二)
-->关于shell编程之文件比较可以使用如下的选项来做文件的比较。有了这些选项,文件的比较来说都是游刃有余。-d file file是否存在并是一个目录-e file file是否存在-f file file是否存在并是一个文件-r file &nb...
对IMP-00013问题的思考
对于IMP的问题或者是各类ORA问题,如果碰到的时候使用oerr是一个很不错的参考方案。比如对于ora错误12041的解释如下。> oerr ora 1204112041, 00000, "cannot record ROWIDs for index-organized table \"%s\".\"%s\""// *Cause: Index-organized tables do not have ROWIDs. Therefore a materialized// ...
shell的图形化实现简单示例
shell脚本一直以来就给人呆板枯燥的感觉。如果来点图形的感觉可能大家对shell的感觉就会多加分。其实在linux中已经有人做了不少的工作,目前使用比较多的是dialog,还有很多衍生的版本,比如kdialog,gdialog,zenity等等。都在图形接口上有自己的界面风格和特点。安装dialog,一般Linux中都会默认安装这个包,如果没有可以...
关于查询转换的一些简单分析(三)
关于查询转换,已经讨论了视图合并和子查询解嵌套,还有谓词推进和物化视图查询重写也是查询转换中不可或缺的部分。-->谓词推进这个术语听起来高大上,有点故弄玄虚的味道。其实在我们的查询中已经潜移默化的使用到了。比如下面的这个查询。我们定义了一个子查询 v,然后在外部的过滤条件中加入了过滤条件e.deptno=10&...
关于查询转换的一些简单分析(二)
关于查询转换的作用,在之前的一篇博文里面也大概说了视图合并和子查询嵌套的部分。http://blog.itpub.net/23718752/viewspace-1310272/ 今天来举一个实例来分析一下。这条sql语句是在生产环境中运行的,目前执行速度在0.1秒左右。我们来看看从查询转换的角度来看,对于同一条sql语句,反复的变化就能够折腾出不少的...
跨网络拷贝文件的简单实践
在实际的项目中可能要访问生产环境是需要各种安全验证和设置的,毕竟客户的数据是最宝贵的资源。一般来说,客户会把一部分访问的权限开放出来。这样在系统出现问题的时候,能够更快更高效的处理问题。下面是一个简单的图表,能够说明一下其中一个项目的网络访问情况。右边的绿色区域是公司内部的环境,其中生产问题复现...
关于enq: TX - allocate ITL entry的问题分析
今天发现系统在下午1点左右的时候负载比较高,就抓取了一个最新的awr报告.Snap IdSnap TimeSessionsCursors/SessionBegin Snap:2089226-Nov-14 13:20:1736235.4...
关于interval partitioning
今天一个开发的同事问我一个问题,说在系统中目前需要一个临时的解决方案,定义了一张表,目前想设定为分区表,因为会和外围系统交互产生大量的数据,所以需要按照小时来做分区,按照目前的数据情况,可能每个小时的数据量都在几十万~百万.如果按照常规思路来说,那这个需求基本上时候不可能实现的.一个是分区的限制数,...
关于数据库中的一些name
如果接触数据库有些时间了,可能会碰到很多关于数据库相关的名字,比如ORACLE_SID,db_name,instance_name,global_name,db_unique_name等等。可能一下子都有些糊涂了,就一股脑儿认为都应该是一致的,其实不然。如果你接触的环境比较单一,可能会有这种错觉。我们来简单对比一下单实例和多实例下的数据库中的这些名词。...
shell基础学习总结(一)
关于shell也多多少少的写了不少文章了。在工作中shell的使用也是相当的普遍了,尤其是基础的学习。今天就简单的总结一下,希望对大家有所帮助。-->查看局部/全局环境变量 printenvenvset查看进程对应的环境变量。比如我们想查看oracle中smon进程对于的环境变量,我们可以使用如下的方法查看。...
关于sysdba,sysoper,dba的区别
关于sysdba,sysoper,dba这些名词在工作中可能接触的比较多,如果接触的环境是服务器端的,sysdba可能是经常用到的。如果是数据库的维护工作,dba就是必备的权限。在oracle的官方文档中给出了sysdba和sysoper的区别。我在这个基础上又加入了一些东西做点补充。标黄的部分是sysdba和sysoper的不同之处。这两个特殊的系统权...
使用句柄实现特定场景的无备份恢复
在dba的工作中,备份是一切工作的基础。如果没有备份,本来很简单的恢复工作也会难上加难,如果业务数据要求很高,造成数据的丢失或者损坏,就是重大事故了。使用rman备份或者做一个完整的系统级备份也是很重要的,如果在特定的场景下,没有备份,如果还能恢复,那就太幸运了。当数据库中的某个数据文件误删的时候,如果...
关于dual表的破坏性测试
关于dual表的破坏性测试,既然是破坏性测试,就需要确定这个测试仅限于测试或者个人学习所用,可能有些sql看似极为简单,但是一旦运行就会导致整个业务系统崩溃。比如说我们拿dual表开刀,这个表是一个dummy表,里面的内容没有特定的意义,就是为了存在而存在。但是一旦这个表出现问题,所有相关的基础操作都会受到影响,...
关于oracle中的sql数据类型
数据类型对于每一种编程语言而言都是数据存储的基础,对于编程语言的实现功能而言也是一个标尺,有些编程语言可能数据类型很丰富,比如java,c,在数据计算方面的支持很全面,有些编程比较精简,更侧重于实现特定的功能,数据类型也就简单得多。比如说shell。对于oracle中的sql来说,数据类型的支持非常全面,无论是数据计算...
数据库静默安装总结
在学习数据库的时候,不知道dbca的命令用了多少遍,但是越是安装也是觉得自己会的越少,因为图形界面的清晰直白反而不知道哪些准备工作是需要特别准备的,如果在远程支持的环境中,图形界面就会受到网络带宽的影响,如果在本地的环境中学习的时候,总是提示少这个包,那个包的。其实有很多的安装包如果不使用图形界面都不...
关于表联结方法(一)
在sql语句中,如果from后面有多个表时,关于表的联结方法是很重要的一个环节。大体有nested loop join,hash join,merge join-->nested loop join这种场景一般适用于大表和小表的关联,一般来说小表适用做为驱动表,对于小表中的匹配记录和大表做关联,这个时候小表是在外部循环,大表在内部循环,小表中的匹配记录都和...
关于索引的使用模式
索引的使用对于一些庞大的sql语句来说,大多数的调优场景中有种雪中送炭的感觉,如果几百万,几千万的数据筛查,全表扫描将会是一个极度消耗资源的过程,但是如果走了索引扫描,可能性能会提升成百上千倍。索引的访问模式有以下几种,其实有些时候对有些细节还是不太注意。对不同的使用场景可以有一定的针对性,效率也许更...
关于oracle中的半连接
表的连接在sql语句中尤为重要。外连接,内连接,半连接,反连接等等各种连接,看似简单的一个连接里面还是有不少的细节的。对于sql调优来说也是很重要的。像下面的形式的sql就属于半连接,使用了in子句,对于exists的实现也是属于半连接。--in半连接SQL> select dname from dept dept where deptno in (select dept...
实用的top命令
对于系统级的监控来说,top命令是实用而高效的瑞士军刀。相比vmstat,sar来说提供的是实时的进程信息,对于监控性能,排查问题是很高效的。而且提供了交互式的命令模式,能够灵活的对输出结果进行组合。如果数据库系统中存在着cpu或者内存的过度使用,或者说IO等待较高,都可以通过top命令进行一个快速的定位到系统进程信...
关于正则表达式第四篇
正则表达式,林林总总说了几篇,还是有不少的内容需要补充。-->星号字符出现0次或者多次$ echo "ik"|sed -n '/e*/p'ik$ echo "ieek"|sed -n '/e*/p'ieek$ echo "This is a color TV"|sed -n '/colou*r/p' --colour中的u可以出现0次或者多次。出现0次的时候color就符合条件This is a color TV$ echo "This ...