查看未提交的sql
---这条sql可以查到会话最后一次执行的未提交的sql,比如我之前insert了两次,然后做了一次select,用下面sql可以查看第二次insert的sql信息,第一次insert是查询不到的select s.SQL_TEXT from v$sql s,v$transaction t where s.LAST_ACTIVE_TIME=t.START_DATE;如何出现下面的情况,sid=10的会话阻...
原索引查询出来的结果较大oracle选择全表的sql优化
优化总结: 虽然列有索引,但是由于基于该列查询出来的结果太多,如果再去回表的话消耗的资源比走全表还大,这里oracle选择了全表。分析测试发现通过对where条件的两个字段创建联合索引能够起到较好的效果,另外通过改写sql的方式(不等于改为大于小于),充分利用联合索引。应用...
由于列没有收集直方图的优化案例
优化总结:由于非索引列没有收集直方图导致oracle采用了错误的执行计划(nested loop),基于该列实际查询出来的值(568020)远大于原统计信息的值(1),通常当子查询出来的结果小于10000行时oracle才会使用nested loop。收集该列直方图后,执行计划走HASH JOIN,优化前执行了13个多小时都没执行成功,优化后10分钟...