update语句怎么优化(sql update 占用cpu 怎么优化)
本文目录
sql update 占用cpu 怎么优化
topas/top看下是不是oracle进程占用的cpu。 然后查看下oracle数据库中都在跑哪些语句。 多数都是效率较差的sql语句导致cpu使用率过高的,一般通过优化sql即可解决。 可用如下语句查看哪些执行时间较长的sql: Selectb.USERNAME, b.SID, a.SQL_ID, a.SQL_TEXT, a.sql_fulltext, b.EVENT, a.executions, --trunc(((decode(a.EXECUTIONS,0,0,a.cpu_time/a.executions))/10000))c_time,---单位零点秒 trunc(((decode(a.EXECUTIONS,0,0,a.ELAPSED_TIME/a.executions))/10000))e_time, --trunc(cpu_time/10000)cpu_time, trunc(a.ELAPSED_TIME/10000)ELAPSED_TIME, a.DISK_READS, a.BUFFER_GETS, b.MACHINE, b.PROGRAM Fromv$sqlareaa,v$sessionb Whereexecutions》=0 Andb.status=’ACTIVE’ anda.SQL_ID=b.SQL_ID --andb.USERNAME=’DB_WTDZ’ --andtrunc(((a.cpu_time/a.executions)/1000000))》5 OrderBye_timedesc
优化Oracle中的Update语句
一.SQL语言的使用 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。 但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。 由此可见用IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了。 推荐方案:在业务密集的SQL当中尽量不采用IN操作符 2.NOT IN操作符 此操作是强列推荐不使用的,因为它不能应用表的索引。 推荐方案:用NOT EXISTS 或(外连接+判断为空)方案代替 3.《》 操作符(不等于) 不等于操作符是永远不会用到索引的,因此对它的处理只会产生全表扫描。 推荐方案:用其它相同功能的操作运算代替,如 a《》0 改为 a》0 or a《0 a《》’’ 改为 a》’’更多内容见中国软件网,ORACLE SQL语句优化推荐方案
更多文章:
下拉框可以输入也可以选择(axure 如何用axure实现既可自定义输入又可选择的下拉框)
2024年8月13日 15:50
没有caption属性的控件是(vb中没有captoin的控件)
2024年8月24日 11:30
dhcp配置实例(给个锐捷三层交换机DHCP配置实例和思科模拟器上的DHCP配置实例)
2023年12月17日 08:00
css实现table隔行变色(css中关于table隔2行变一个颜色)
2024年9月7日 20:40
odbc驱动管理器未发现数据源(连接odbc时,未发现数据源名称并且未指定默认驱动程序是怎么回事)
2024年7月22日 20:36
java程序员培训机构排名前十(正规java培训机构哪个好)
2024年7月24日 06:31
former什么意思(former和preceding的区别)
2024年7月24日 04:31