当前位置 > 首页 > Sql

一次Oracle SQL优化的经验

2010-11-13 13:14:00来源:Sql

前些时候候遇到一个SQL的性能问题,在解决过程里了解到了一些东西。有数据库表T,主键是列A, B, C, D, E。每天需要定时从上游数据库源取数据过来更新,大约10几万条。更新的操作过程是,对每条上游数据按几个关键字段在表T中进行删除操作。delete from T where B = ? and C=? and E = ? 然后再进行Insert操作。
系统运行到三个多月的时候,遇到了问题。UAT环境(Oracle 10g)性能正常,10万条记录更新是10多分钟,Production环境(Oracle 9i,还没来得及升级), 有一天突然从10多分钟变成了一个小时,用户无法接受。首先确认了表的统计信息都是最新的,在分析查询计划后,发现性能下降主要由delete操作引起的,10g在优化中找到了索引,而9i在优化中用了CBO,全表扫描。试着改成强制使用RBO,还是没有用到索引。后来想到,可能是因为列A没有在where条件中,而我们除了主键以外,没有建另外的索引,所以聚集索引匹配的时候,第一个字段没有匹配上,就放弃使用索引了。而10g的优化器聪明一些,第一个列没找到后,还尝试了继续匹配。于是试着在where中加上A=?这人条件,再执行,果然用上索引了。由于A条件放在where中没什么意义,所以后来的解决办法是在区别度比较大的列C上加了一个唯一索引,再执行时速度有明显提升,从一个小时回到了10多分钟。
总结三点:
1.Oracel不同版本的优化器智商有差距。
2.我们还是要尊重一般经验,在有只有主键聚集索引时, 至少把第一列作为的where里的条件。
3.由于10g以后已经变聪明了,所以第二点无效,还是可以随便写写。


  • Google earth官司再缠身 被疑人为操纵卫星图

    2007-4-1 11:22:00

    ...日消息,据外电报道,一直官司不断的Google公司再次惹祸上身,近日有消息称其Google...调查小组主席Brad Miller表示。而调查小组认为,Google公司涉嫌同该地区的领导人串通

  • 语言不再是障碍 Google推出跨语言搜索

    2007-5-25 12:30:00

    ...葡萄牙语,俄语,西班牙语,繁体中文以及简体中文。随着开发,以后将陆续支持其他语言。Google发言人在发布会上表示,Google的一部分使命就是使全球信息对于每个用户来说都是可用的...

  • Google发布安全工具Skipfish

    2010-3-22 16:01:00

    Google 发布 了一个Web应用安全检测工具 Skipfish ,帮助互联网成为一个更安全的场所。Skipfish运行一系列测试,去探测网站中存在的高、中和低危急漏洞,包括服务端的SQ

  • dw与SQL连接方法

    2011-4-13 22:02:00

    dw与 SQL 连接方法2011年03月30日星期三下午12:57一、在 SQL Server 2000中建立数据库 1.在 SQL Server 2000中创建数据库 (1)打开

  • Google Chrome操作系统开发测试版界面曝光

    2009-8-1 0:59:00

    北京时间7月8日, Google 正式宣布将开发操作系统,这意味着 Google 与微软之间的竞争已升级到了白热化阶段。 日前,有用户发布了一批截图,声称来自于实际的早期Chrome操作系统。

  • Google股价涨至484美元历史新高

    2009-4-11 2:54:00

    据国外媒体报道,受第三季度优异业绩的推动, Google 股价本周一涨至484。64美元,达到历史新高。 Google 此前的历史最高股价为今年1月初创造的475。11美元。 10月23日, Goo

  • 各种数据库的分页sql

    2010-10-8 1:26:00

    摘要: 分页 阅读全文 vle 2010-10-07 22:27 发表评论

  • sql 根据汉字获取全拼

    2010-12-27 15:04:00

    /* 根据汉字获取全拼 1.生成所有读音临时表 2.根据Chinese_PRC_CS_AS_KS_WS 排序获取读音 */ GO /****** Object: UserDefinedFu

  • 新经济导刊:百度漂亮 但Google更有气质

    2007-5-25 14:36:00

    ...新经济导刊:百度漂亮 但Google更有气质http://www.sina...又同时给了分析师们一次责怪自己太保守的机会。这一财季,Google的净利润为10亿美元...我们关注的是创新,力

  • Google拉美主管跳槽 称Google太官僚

    2009-4-7 17:03:00

    赛迪网讯4月7日消息,据国外媒体报道,谷歌拉美西班牙语区(除巴西外)总经理GonzaloAlonso将离职加盟Globant担任运营副总裁。Alonso称,谷歌发展的太大了,而且对他而言太官僚。 谷