oracle
文章平均质量分 64
ado1986
非典型程序员
展开
-
ORA-08103: 对象不再存在
最近informatica在抽取一个表的数据时,经常报“ORA-08103: 对象不再存在”错误。当时在网上也没找到特别好的解决办法,只能自己分析了下原因,最终解决了这个问题。 先说下背景: informatica每天凌晨3点多会对一个有几千万数据量的表进行抽取操作,但是在到3:40左右的时候,经常会报该错误。由于抽取的表的数据是由另外一个ETL抽取而来的,且在3:40左右数据原创 2012-12-04 10:16:32 · 56338 阅读 · 0 评论 -
weblogic配置oracle数据库连接池
在weblgoic配置数据库连接池时,不能使用tns的service_name,er'ying原创 2014-09-12 15:33:45 · 1670 阅读 · 0 评论 -
sql优化-总结
1、尽量缩小数据范围。2、能一个sql解决的,坚决不用两条sql。利用case when或decode。select month_id, corppkno, sum(exportSum_new) exportSum_new, sum(exportSum_newLy) exportSum_newLy, sum(exportSum_Sup原创 2013-08-12 17:50:11 · 926 阅读 · 0 评论 -
oracle多行合并技巧
在写sql时,经常会有将某列的字段合并起来,比如将某人名下每个月的工资列示,但是每个人只能占一行。 像这种场景,可能用行列转换也能实现,但如果这个月份的信息不固定,就无法使用行列转换了。 oracle10g以后,提供了一个函数WMSYS.WM_CONCAT,能很轻松实现该功能。select t.rank, WMSYS.WM_CONCAT(t.Name) TIME From原创 2013-07-02 18:15:10 · 2087 阅读 · 0 评论 -
sql优化-提防错误关联
在写sql时,在多表关联时,有时候容易把关联关系写错。一般情况下,该问题比较容易发现,但如果sql较长时,光靠眼力就比较难发现了。今天写了一个脚本,碰到该问题了。 第一版本的脚本如下:select detail.commityear, detail.commitmonth, to_char((sysdate - 1), 'YYYYMM') statmo原创 2013-07-12 14:54:45 · 1281 阅读 · 0 评论 -
sql优化-hint的作用
目前,oracle采用的是CBR优化器,所以在有些时候,机器会按照自己的意愿去执行sql,当然oracle是根据本身的一些信息来做决定的,比如:统计信息。但有些时候,机器并不一定会按照我们预想的那样去执行。 今天就遇到这样的一个问题,在查看某一段时间内的出运明细时,执行时间较长。sql如下:select * from C1.T_DECLAREDETAIL t1 where t1原创 2013-07-09 18:16:48 · 1666 阅读 · 0 评论 -
MySQL事务隔离级别详解
转载自:http://xm-king.iteye.com/blog/770721SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容)在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性转载 2013-03-24 21:13:17 · 885 阅读 · 0 评论 -
sql性能优化-案例2
可以参考:http://www.jscode.cn/develop/database/v33772另外,除了该文章的原因外,还有可能是因为在字段endtime上使用函数导致索引不可用的问题。转载 2013-03-01 17:38:21 · 608 阅读 · 0 评论 -
ORACLE 连接方式 NESTED LOOP、HASH JOIN
转载自:http://zl198751.iteye.com/blog/992795ORACLE 连接方式NESTED LOOP 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择。nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查找,没有索引一般就不会是 nested loops。 一般在nested loop转载 2013-03-07 10:49:00 · 1514 阅读 · 0 评论 -
sql优化(查询条件的变化对执行计划的影响)
今天在工作中统计一个数据,最开始比较顺利的执行完了sql,但后来用户稍稍调整了需求,本来我以为增加一个查询条件就可以搞定的事情,结果执行了二十多分钟才出结果。后来我查看了下执行计划,发现前后两个sql的执行计划有变化。 这两个SQL分别为:SELECT T.YEARID, SUM(T.EXPORTSUM) FROM STDW.F_CUSTOM_EXPORTDETAIL T,原创 2013-01-09 16:21:36 · 1821 阅读 · 0 评论 -
SQL优化总结(34条)
我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享!(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为转载 2013-03-06 13:51:38 · 819 阅读 · 0 评论 -
oracle统计信息
参考文章:http://blog.csdn.net/tianlesoftware/article/details/4668723统计信息对于基于成本的优化器来说,非常重要。统计信息对于sql的执行很重要,对于CBO优化器,sql的执行依赖于统计信息。如果统计信息不正确,会导致表与表之间的join方式不是最优的。我遇到的问题和这个帖子类似:执行计划中出现笛卡尔积http:原创 2013-03-06 13:32:33 · 1014 阅读 · 0 评论 -
sql优化-典型案例
今天写了个sql,为了验证下不同sql写法性能上有何区别,我专门用了两种实现方式,结果发现差别还蛮大的。 需求:查询出口额在前十大的企业信息。 实现方式一:SELECT A.V_COCODE , A.COMPANY , A.TOTALDOLLAR FROM (SELECT T1.V_COCODE,原创 2013-03-01 09:19:43 · 805 阅读 · 0 评论 -
sql性能优化-典型案例3
有时候在写sql时,可能忘记将表之间进行关联。这是效率会巨慢,且结果不一定是想要的。 通过执行计划可以发现一些端倪,如,遍历表消耗很少,但是对俩个表会进行笛卡尔连接,且消耗非常大,这是就可以考虑下表是否正常关联。 参考一下例子:SELECT DISTINCT T.EXPORTNO, T1.COCODE, T2.CHNNAME FROM T_ENTERPRISES T,原创 2013-03-04 17:55:17 · 1075 阅读 · 0 评论 -
同一个表中的重复记录
今天在写sql脚本时,需要查一个表中的重复记录。这里所谓的重复,指的是某几个字段的值有可能完全相同,也有可能不完全相同。我琢磨了下,突然发现“删除表中重复记录”的思路可以用在这里,结果搞定了今天的这个问题。 具体解决的问题以及思路就不在这里赘述了,我抽象为下面的问题: 在一个表中有四个字段:保户ID、出运日期、发票号、发票金额。 需要实现:找出保户ID和发票号相同的数原创 2012-12-31 11:29:12 · 908 阅读 · 0 评论 -
sql优化-分页查询效率慢的问题分析及处理
绑定参数的sql优化。避免sql层面进行参数运算。原创 2015-07-28 10:59:42 · 14087 阅读 · 0 评论